gerkirill / silex-rad
一组简单易用的Silex服务,用于加速开发
Requires
- php: >=5.3.3
Requires (Dev)
- silex/silex: ~1.2
- twig/twig: >=1.8,<2.0-dev
This package is not auto-updated.
Last update: 2024-09-28 15:23:48 UTC
README
一组简单易用的Silex服务,以加快开发速度。
安装
使用composer
{"require": {"gerkirill/silex-rad": "dev-master"}}
自动服务
将给定目录中所有类注册为服务(非递归)。服务构造函数将接收单个参数 - $app。如果您想向构造函数传递自定义参数,只需使用auto-service使用的名称自己注册服务即可。
$app->register(new \SilexRad\AutoService\Provider\AutoServiceProvider(), array( 'rad.service.directories' => array( __DIR__ . '/../src/Service' => array('namespace' => 'Service') ) ));
例如,位于Service/MyTestService.php中的Service\MyTestService类可以通过$app['MyTestService']访问。配置键'rad.service.directories'包含关联数组,其中键是服务所在的文件夹路径。值是包含设置的关联数组。可能的设置键包括
- file_extension - 默认为'.php',您可以将它更改为'.inc',如果您的服务使用该扩展。将跳过其他扩展名的文件。
- namespace - 您的服务所属的命名空间,例如 "Services" 或 "MyVendor/MyProject/Services"
可以通过设置$app['rad.service_name_converter']和$app['rad.service.registrator']来更改默认行为。您可以在“扩展点”部分找到更多详细信息。
自动路由
自动处理形如'/{"控制器}/{动作}'的路由。需要控制器作为已注册的服务类。{动作}部分是可选的,默认为"index"。
// this built-in service provider is required to use auto-route $app->register(new Silex\Provider\ServiceControllerServiceProvider()); // here you can use AutoServiceProvider to automatically register controllers as services, or you'll have to do it manually $app->register(new \SilexRad\AutoRoute\Provider\AutoRouteProvider());
例如,URL my-test/my-example将被MyTest:myExample控制器处理。控制器将使用单个参数 - $request 被调用。URL将匹配GET和POST。如果需要更精确的路由调整,请手动创建路由。
自动模板
根据当前控制器和动作检测twig模板名称。需要控制器作为已注册的服务类。
$app->register(new \SilexRad\AutoTemplate\Provider\AutoTemplateProvider());
在您的控制器中,您现在可以这样做
class MyTestController { private $app; ... public function myExample() { return $this->app['rad.template.render'](['hello' => 'world']); } }
相应的模板将是位于为twig配置的模板目录下的my-test/my-example.twig。