malukenho / silex-manager
使用Silex创建简单的CRUD应用脚手架
dev-master
2016-05-22 03:53 UTC
Requires
- php: ~5.6|~7.0
- silex/silex: ^1.3
- symfony/config: ^2.7
- symfony/form: ^2.7
- symfony/security-csrf: ^2.7
- symfony/translation: ^2.7
- symfony/twig-bridge: ^2.7
- symfony/validator: ^2.7
- symfony/yaml: ^2.7
- twig/twig: ^1.21
Requires (Dev)
- fabpot/php-cs-fixer: ^1.10
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-20 23:54:10 UTC
README
Silex Manager是一种简单的方法来创建CRUD应用。我们知道基于CRUD的应用很糟糕,但有时它是必需的。
现在您可以在几分钟内创建糟糕的应用程序
作者
安装
您必须将 minimum-stability
设置为 dev
,然后运行
$ composer require malukenho/silex-manager
需求
- twig/twig
- symfony/twig-bridge
- symfony/session
- symfony/form
- symfony/security-csrf
- symfony/translation
用法
首先,您需要将 ManagerControllerProvider
注册到您的 Silex\Application
中。目前,您应该向我们的提供者传递一个 PDO
实例。
$adapter = new \Manager\Db\Adapter\PdoAdapter($pdo); $app->mount('/manager', new \Manager\Controller\ManagerControllerProvider($adapter));
当您安装 Silex Manager
时,您不需要安装 Silex,因为 Silex 已经安装。所有依赖项也已安装。您只需正确配置这些依赖项。
$app->register(new Provider\TwigServiceProvider(), [ // Use this path to load the default views (It's use semantic-ui from CDN) 'twig.path' => __DIR__ . '/vendor/malukenho/silex-manager/views', ]); $app->register(new Provider\UrlGeneratorServiceProvider()); $app->register(new Provider\SessionServiceProvider()); $app->register(new Provider\ServiceControllerServiceProvider()); $app->register(new Provider\FormServiceProvider()); $app->register(new Provider\ValidatorServiceProvider()); $app->register(new Provider\TranslationServiceProvider(), [ 'translator.domains' => [], ]);
路由
配置
您必须在 $app['manager-config']
上放置一些配置,以便利用 Silex Manager 的强大功能。
下面是一个基本配置的示例。注意,users
指的是表名,并且这包括一个配置界面/回调/字段的文件。
$app['manager-config'] = [ // Inside the `manager` key we have config for tables 'manager' => [ 'users' => require __DIR__ . '/config/users.php', ], // Configuration pointing to default view // You can use your own views 'view' => [ 'index' => 'manager-index.twig', 'new' => 'manager-new.twig', 'edit' => 'manager-edit.twig', ], ];
让我们看看 /config/users.php
配置定义文件中的 index
动作。
return [ // List action 'index' => [ // Define columns // column name on db => label 'columns' => [ 'id' => 'Id', 'name' => 'Name', 'email' => 'Email', ], // Modifies how the colums value is showed up 'modifier' => [ 'id' => function (array $data) { return '#' . $data['id']; }, ], // Set a primary key name, It's ID by default 'pk' => 'id', // UI page header 'header' => 'Manager users', // UI page icon 'icon' => 'user', // Allow pagination 'pagination' => true, // Show items per page 'item_per_page' => 10, // Actions allowed 'action' => [ 'new' => 'Create a new user', 'edit' => 'Edit', 'delete' => 'Delete', ], // Configuration for search field 'search' => [ 'input' =>[ [ 'name' => 'name', 'placeholder' => 'Find by name', ], ], 'button' => 'Filter' ], ], ];
新表单
当提交表单时,您可以做一些有趣的事情,比如调用 before
和 after
函数,这允许您在表单处理前后执行一些操作。
'before' => function (array $data) use ($app) { if ($app['auth.model']->hasStudentWithMail($data['email'])) { $app['session']->getFlashBag()->add( 'messageError', 'Email já cadastrado, por favor escolha outro email.' ); $url = $_SERVER['REQUEST_URI']; header("Location: {$url}"); exit; } },
自定义查询
有时您可能需要创建一个自定义查询来在列表页面上显示数据。这是通过设置键 query
来实现的。
$app['manager-config'] = [ 'manager' => [ 'users' => [ 'index' => [ 'query' => 'SELECT * FROM users u INNER JOIN user_admin ua ON u.id = ua.id', ], ], ], ];
动作
缺失文档
视图
目前我们提供简单的视图。您可以在 views
文件夹中查看以实现自己的表示文件。新的表示文件可以通过以下指令进行配置。
列
缺失文档
之前
缺失文档
之后
缺失文档
自定义名称
缺失文档
修饰符
缺失文档