bgaze/silex-skeleton

此包已被弃用且不再维护。未建议替代包。

基于 fabpot/silex-skeleton 的 Silex 微框架预配置骨架。

安装: 20

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:项目

dev-master 2017-08-27 16:50 UTC

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 以获取更详细的示例。

文档: ConsoleServiceProviderSymfony Console 组件