Я использую Silex какое-то время без каких-либо проблем. Я смог добавить новые сервисы, создать базовые сайты и т. Д. К сожалению, я застрял сейчас над созданием новой службы с нуля ... Я не слишком уверен, что я делаю неправильно, и я понял, правильное направление будет полезно сейчас.Создание новых поставщиков услуг в Silex
У меня есть базовая структура, как это:
cache
resources
src
-app.php
-autoload.php
-config.php
-controllers.php
-etc
vendor
-assetic
-Company
-src
-Postback.php <-- The classes I need to load
-silex
-etc
views
web
Так, в app.php
:
use SilexExtension\CompanyPostbackServiceProvider;
$app->register(new CompanyPostbackServiceProvider(), array(
'company.class_path' => __DIR__ . '/../vendor/Company/src'
));
в src/autoload.php
:
$loader->registerNamespaces(array(
'Symfony' => array(__DIR__.'/../vendor/silex/vendor', __DIR__.'/../vendor'),
'Silex' => __DIR__.'/../vendor/silex/src',
'SilexExtension' => __DIR__.'/../vendor/Silex-extentions/src',
'Assetic' => __DIR__.'/../vendor/assetic/src',
'Company' => __DIR__.'/../vendor/Company/src'
));
в silex/vendor/Silex-extensions/src/SilexExtension/CompanyPostbackServiceProvider.php
:
namespace SilexExtension;
use Silex\Application;
use Silex\ServiceProviderInterface;
class CompanyPostbackServiceProvider implements ServiceProviderInterface
{
public function register(Application $app)
{
if (isset($app['company.class_path']))
{
$app['autoloader']->registerNamespace(
'Company', $app['company.class_path']
);
}
}
}
Я пробовал несколько вариантов этого, но вызов Postback from controller.php приводит к тому, что классы не найдены, и объявление методов класса CompanyPostbackServiceProvider приводит только к функции register, принадлежащей Silex \ Application.
Любые идеи? Я знаю, что делаю что-то глупое, но по какой-то причине просто не щелкает.
Спасибо!