Я уже некоторое время пользуюсь 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'
));
in 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 из controller.php не приводит к обнаружению классов,и объявление методов класса CompanyPostbackServiceProvider приводит только к функции регистра, которая принадлежит Silex \ Application.
Есть идеи?Я знаю, что делаю что-то глупое, но по какой-то причине оно просто не щелкает.
Спасибо!