bgaze / silex-skeleton
基于 fabpot/silex-skeleton 的 Silex 微框架预配置骨架。
Requires
- php: >=5.5.9
- bgaze/silex-console-provider: dev-master
- bgaze/silex-finder-provider: dev-master
- silex/silex: ~2.0
- silex/web-profiler: ~2.0
- symfony/asset: ~2.8|^3.0
- symfony/browser-kit: ~2.8|^3.0
- symfony/class-loader: ~2.8|^3.0
- symfony/config: ~2.8|^3.0
- symfony/console: ~2.8|^3.0
- symfony/css-selector: ~2.8|^3.0
- symfony/debug: ~2.8|^3.0
- symfony/finder: ^3.3
- symfony/form: ~2.8|^3.0
- symfony/monolog-bridge: ~2.8|^3.0
- symfony/process: ~2.8|^3.0
- symfony/security: ~2.8|^3.0
- symfony/translation: ~2.8|^3.0
- symfony/twig-bridge: ~2.8|^3.0
- symfony/validator: ~2.8|^3.0
This package is auto-updated.
Last update: 2020-01-17 16:48:05 UTC
README
欢迎使用 Silex 骨架 - 这是一个功能齐全的 Silex 应用程序,您可以用它作为 Silex 应用的起点。
学习 Silex 的好方法是通过文档,它将向您展示 Silex 的所有功能。
本文档包含有关如何开始使用 Silex 骨架的信息。
安装。
$ composer create-project bgaze/silex-skeleton:dev-master path/to/install
然后给 PHP 在 /var
目录(用于日志和缓存)上的写权限。
浏览演示应用程序
有关在您的本地 Web 服务器上配置 Silex 的信息,请参阅Web 服务器配置文档。
要使用 PHP 内置的 Web 服务器,请运行
$ cd path/to/install
$ COMPOSER_PROCESS_TIMEOUT=0 composer run
然后,浏览到 https://:8888/index_dev.php/
包含的服务提供者。
有关 Silex 服务提供者的更多详细信息,请参阅提供者文档。
Silex 骨架配置了以下服务提供者
- ValidatorServiceProvider:提供数据验证服务。当与 FormServiceProvider 一起使用时非常有用,但也可以独立使用。
- ServiceControllerServiceProvider - 随着您的 Silex 应用程序的扩展,您可能希望开始以更正式的方式组织控制器。Silex 可以直接使用控制器类,但通过一些工作,您的控制器可以作为服务创建,从而获得依赖注入和延迟加载的全部功能。
- TwigServiceProvider:提供与 Twig 模板引擎的集成。
- WebProfilerServiceProvider - 在开发时在 Silex 应用程序中启用 Symfony Web 调试工具栏和 Symfony 分析器。
- MonologServiceProvider - 在开发环境中启用日志记录。
- FinderServiceProvider - 通过直观的流畅接口查找文件和目录。
- ConsoleServiceProvider - Silex 的 CLI 应用程序服务提供者。
使用方法。
此 Silex 实现遵循几个约定。
主要的是,当前修改的文件应位于 /src
文件夹中。
请在本节中查找有关组织的更多详细信息。
视图。
应用程序视图位于 /src/views
文件夹中。
包含两个模板
base.html.twig
:一个原始的基本模板,定义 HTML 页面中的主要块。layout.html.twig
:Bootstrap 4 Stater Template 的实现,链接:Bootstrap 4 Stater Template。
它可以用来快速启动您的应用程序,并且可以作为构建自定义布局的模板。
控制器。
控制器位于 /src/controllers
文件夹中。
该文件夹中的任何 PHP 文件都将自动加载。
应用程序已经包含了一个安装在应用程序根路径上的主要控制器。
基本上,要添加新的控制器
- 使用
controllers_factory
生成新的控制器。 - 添加您的操作。
- 使用您想要的路径安装控制器。
示例
<?php # src/controllers/demo.php // Create controller. $controller = $app['controllers_factory']; // Add actions. $controller->get('/', function () use ($app) { // ... })->bind('demo.home'); $controller->get('/page1', function () use ($app) { // ... })->bind('demo.page1'); $controller->get('/page2', function () use ($app) { // ... })->bind('demo.page2'); $controller->mount('/sub-section', function ($sub) { $controller->get('/', function () use ($app) { // ... })->bind('demo.sub.home'); $controller->get('/page1', function () use ($app) { // ... })->bind('demo.sub.page1'); $controller->get('/page2', function () use ($app) { // ... })->bind('demo.sub.page2'); }); // Mount controller. $app->mount('/demo', $controller); /* * RESULTING URI : * /demo * /demo/page1 * /demo/page2 * /demo/sub-section * /demo/sub-section/page1 * /demo/sub-section/page2 */
文档: 组织控制器。
控制台。
用法。
控制台可执行文件是 /bin/console
文件。
$ php bin/console your:command
要获取可用命令的列表,只需不带参数调用它。
$ php bin/console
此实现附带两个命令
cache:clear
:清除应用程序缓存。
运行此命令以在 PROD 环境中查看您的更改。demo:command
:自定义命令的模式。
如果您不需要构建自定义命令,可以安全地删除
/src/commands
文件夹。
自定义命令。
自定义命令位于 /src/commands
文件夹中。
当调用控制台时,此文件夹中的任何 PHP 文件都将自动加载。
基本上,要创建命令
- 将您的命令存储在
/src/commands
中。 - 使其扩展
Bgaze\Silex\Console\Command\AbstractCommand
。 - 在类之后立即注册。
示例
<?php # src/commands/mycommand.php use Bgaze\Silex\Console\Command\AbstractCommand; class MyCommand extends AbstractCommand { // ... } $app['console']->add(new DemoCommand());
请参阅 /src/commands/demo.php
以获取更详细的示例。