#php #oop #laravel-4 #packages
#php #ооп #laravel-4 #пакет
Вопрос:
Здравствуйте, я создал новый пакет для проекта Laravel, над которым я работаю, я новичок в концепции пакетов и самого laravel, но вот код, который я придумал,
/workbench/cycs/proofhq/src/Cycs/Proofhq/ProofhqServiceProvider.php
public function boot()
{
$this->package('cycs/proofhq');
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->booting(function()
{
$loader = IlluminateFoundationAliasLoader::getInstance();
$loader->alias('Cycs', 'CycsProofhqFacadesSupyo');
});
$this->app['proofhq'] = $this->app->share(function($app)
{
return new Proofhq;
});
}
/workbench/cycs/proofhq/src/Cycs/Proofhq/Proofhq.php
<?php namespace CycsProofhq;
class Proofhq {
public static function greeting() {
return "What's up dawg!";
}
}
/workbench/cycs/proofhq/src/Cycs/Proofhq/Facades/Proofhq.php
<?php namespace CycsProofhqFacades;
use IlluminateSupportFacadesFacade;
class Proofhq extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() {
return 'proofhq';
}
}
Я добавил пакет в app/config/app.php и массив провайдеров, затем попытайтесь получить доступ к функциям пакета с помощью простого get,
Route::get('/test', function(){
echo proofhq::greeting();
});
Но я получаю следующую ошибку,
Класс ‘proofhq’ не найден
Я не могу понять, почему, я следовал примерам до буквы, и класс существует.
Может ли кто-нибудь пролить свет на это для меня?
Комментарии:
1. Вы пробовали echo Proofhq::greeting() вместо всех строчных букв?
2. Это было сочетание этого и необходимости
composer dump-autoload
3. Пожалуйста, ответьте на свой вопрос самостоятельно, чтобы другие могли увидеть ответ.
Ответ №1:
composer dump-autoload
и изменение первой буквы имени класса в маршрутах на верхний регистр, похоже, делает свое дело!