codyas / toolbox-bundle
一套用于开发Symfony应用的Codyas工具集
v1.1.27
2024-08-11 08:20 UTC
Requires
- php: >=7.4.0
- knplabs/knp-paginator-bundle: ^5.0 || ^6.0
- stof/doctrine-extensions-bundle: ^1.0
- symfony/flex: ^1.0 || ^2.0
- symfony/form: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/framework-bundle: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/http-client: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/security-bundle: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/translation: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/twig-bundle: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/validator: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/webpack-encore-bundle: ^1.0 || ^2.0
This package is auto-updated.
Last update: 2024-09-11 08:32:15 UTC
README
Codyas Toolbox是一套非常具有观点的内部工具集,用于开发Symfony应用程序。
特性
- CRUD 操作 Doctrine 实体(创建、编辑、列表、删除)。
- 针对 Symfony 优化的管理模板。
- 支持 Symfony 4.0 或更高版本。
要求
- PHP >= 7
- Symfony >= 4.0
- NPM
- Yarn
安装
首先,您需要允许通过 Flex 配置额外的 contrib,在项目根目录运行以下命令
composer config extra.symfony.allow-contrib true
然后安装该包
composer require codyas/toolbox-bundle
配置
大多数项目配置应通过 Flex 完成。如果由于任何原因配置没有自动完成,请手动配置该包。
注册包
# config/bundles.php return [ // ... Codyas\Toolbox\CodyasToolboxBundle::class => ['all' => true], // ... ];
注册包的路由
# config/routes/codyas_toolbox.yaml codyas_toolbox_bundle: resource: '@CodyasToolboxBundle/Controller/CrudController.php' type: annotation
模板
此包提供了一套标准的 Twig 模板系统。要利用预设计的视图,所选模板必须扩展所选主题的 base.html.twig
文件。目前支持一个主题,主题位于包的 Resources/views/
文件夹中。
资产配置
此包提供了一套由模板、CRUD 特性和一些其他功能所需的资产。这些工具集以 NPM 包的形式分发,您必须在项目中安装它。请注意,为了在开发和生产环境中编译这些资产,需要 Webpack Encore。
在项目根目录中执行(需要 NPM 和 Yarn)
yarn add --save @codyas/symfony-toolbox
这将安装资产和模板所需的所有其他 UI 依赖项。安装完成后,在项目的资产文件夹中创建一个入口点文件,例如 admin_app.js
并包含所需的功能。
// assets/js/admin_app.js require('@codyas/symfony-toolbox');
接下来在 webpack.config.js
文件中注册入口点。入口名称必须是 codyas_ep
,因为模板配置期望此名称。
// assets/js/app.js // (...) .addEntry('codyas_ep', './assets/admin/admin_app.js') // (...)
如果需要对 CRUD 行为进行一些自定义,请将以下代码追加到同一文件中,其中 custom_folder 代表 assets/js/ 中包含 JS 文件的文件夹。这些文件将在 CRUD 环境中包含并执行。
// assets/js/app.js function requireAll(r) { r.keys().forEach(r); } requireAll(require.context('./custom_folder/', true, /\.js$/));