синтаксис laravel '::' в значении функции просмотра - PullRequest
0 голосов
/ 03 мая 2018
<?php
namespace Laravel\Horizon\Http\Controllers;

class HomeController extends Controller
{
      /**
      * Single page application catch-all route.
      * @return \Illuminate\Http\Response
      */
      public function index()
      {
         return view('horizon::app'); // what's the meaning of this 'horizon::app'
      }
}

Я нашел этот синтаксис в Laravel-Horizon Controller, может кто-нибудь объяснить это:

вид ( 'горизонт :: приложение');

Что означает 'horizon::app'?

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Этот синтаксис указывает, что представление с именем app принадлежит пакету horizon. Думайте об этом как package::view.path.

Больше информации в документации по разработке пакетов Laravel.

Чтобы зарегистрировать представления вашего пакета в Laravel, вам нужно сообщить Laravel, где расположены представления.

Представления пакетов ссылаются с использованием соглашения о синтаксисе package :: view. Итак, как только ваш путь просмотра зарегистрирован у поставщика услуг, вы можете загрузить представление администратора из пакета курьера следующим образом:

Route::get('admin', function () {
    return view('courier::admin');
});

Эта функция раньше называлась просмотром пространств имен, если вы видели этот термин или хотите что-то еще искать. :)

0 голосов
/ 03 мая 2018

Как и другие заявленные ответы, это известно как view namespaces. Он не ограничен видом пакета, но вы можете использовать его и внутри своего проекта.

Например, у вас могут быть модуль администратора и клиента, и вы хотите различать их представление по их собственному имени папки, в этот момент вы можете использовать объявление пространства имен. Например, у вас могут быть следующие структуры папок:

|- resources
   |- views
      |- admin
         |- index.blade.php 
      |- customer
         |- index.blade.php  

Тогда вы можете зарегистрировать свое собственное пространство имен, которое указывает на этот конкретный путь к папке, в AppServiceProvider.php:

app('view')->addNamespace('admin', base_path() . '/resources/views/admin');

// or

app('view')->addNamespace('customer', base_path() . '/resources/views/customer');

И позже, внутри метода контроллера, вы можете ссылаться на него, используя:

return view("admin::index"); 

// or

return view("customer::index");
0 голосов
/ 03 мая 2018

:: - оператор области (пространства имен). Значение app объявлено в пределах horizon.

Пример (из php.net ):

<?php
class MyClass {
    const CONST_VALUE = 'Un valor constante';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // A partir de PHP 5.3.0

echo MyClass::CONST_VALUE;
?>
...