collaborar / forgge-plugin
一款使用 Forgge 框架的现代 WordPress 开发插件
Requires
- php: >=5.5
- collaborar/forgge: dev-main
- collaborar/forgge-app-core: dev-main
- composer/installers: ^1.4
Requires (Dev)
- collaborar/forgge-cli: dev-main
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.0
- filp/whoops: ~2.13.0
- symfony/debug: ~3.0
- wp-coding-standards/wpcs: ^2.0
README
一款使用 Forgge 框架的现代 WordPress 开发插件。
摘要
非目标
-
接管 WordPress 主要查询。
Forgge 并没有接管主要查询,而是与之积极协作。
-
接管 WordPress 路由。
Forgge 并没有接管 WordPress 的路由,而是与之积极协作。唯一例外是用户明确添加的硬编码 URL。
-
使用面向对象的接口重新发明 WordPress API。
Forgge 没有提供注册帖子类型、分类或类似内容的替代 API,因为这些功能带来的益处很小。相反,它为开发者提供了逻辑上便利的位置来使用核心 API。
-
默认使用第三方引擎。
Forgge 默认使用 PHP,与 WordPress 的用法相同,但增加了更多功能。使用第三方引擎完全可选,需要安装扩展。
-
包含 Laravel 或其他框架的大部分内容。
Forgge 专为 WordPress 而优化,虽然受到 Laravel 的启发,但它不包含任何
illuminate/*包。只有 2 个第三方生产依赖项pimple/pimple- 单文件 PHP 服务容器。guzzlehttp/psr7- PSR-7 请求和 ServerRequest 实现。
要求
目录结构
wp-content/plugins/your-plugin
├── app/
│ ├── helpers/ # Helper files, add your own here as well.
│ ├── routes/ # Register your Forgge routes.
│ │ ├── admin.php
│ │ ├── ajax.php
│ │ └── web.php
│ ├── src/ # PSR-4 autoloaded classes.
│ │ ├── Controllers/ # Controller classes for Forgge routes.
│ │ ├── Routing/ # Register your custom routing conditions etc.
│ │ ├── View/ # Register your view composers, globals etc.
│ │ ├── WordPress/ # Register post types, taxonomies, menus etc.
│ │ └── ...
│ ├── config.php # Forgge configuration.
│ ├── helpers.php # Require your helper files here.
│ ├── hooks.php # Register your actions and filters here.
│ └── version.php # Forgge version handling.
├── dist/ # Bundles, optimized images etc.
├── languages/ # Language files.
├── resources/
│ ├── build/ # Build process configuration.
│ ├── fonts/
│ ├── images/
│ ├── scripts/
│ │ ├── admin/ # Administration scripts.
│ │ └── frontend/ # Front-end scripts.
│ ├── styles/
│ │ ├── admin/ # Administration styles.
│ │ ├── frontend/ # Front-end styles.
│ │ └── shared/ # Shared styles.
│ └── vendor/ # Any third-party, non-npm assets.
├── vendor/ # Composer packages.
├── views/
│ ├── layouts/
│ └── partials/
├── screenshot-1.png # Plugin screenshot.
├── forgge # Forgge CLI shortcut.
├── forgge.php # Bootstrap plugin.
└── ...
重要目录
app/helpers/
在此处添加 PHP 辅助文件。辅助文件应只包含 函数定义。有关操作、过滤器、类等放置位置的信息,请参阅下面。
app/src/
在此处添加 PHP 类文件。所有在 MyApp\ 命名空间中的类都将根据 PSR-4 进行自动加载。
resources/images/
在此处添加用于样式的图像。在运行构建过程时,优化后的副本将被放置在 dist/images/ 中。
resources/styles/frontend/
将 .css 和 .scss 文件添加到前端包中。别忘了在 index.scss 中 @import 它们。
resources/styles/admin/
与 resources/styles/frontend/ 目录工作方式相同的 admin 样式目录。
resources/scripts/frontend/
在此处添加 JavaScript 文件以将其添加到前端包中。入口点是 index.js。
resources/scripts/admin/
与 resources/scripts/frontend/ 目录工作方式相同的 admin 脚本目录。
views/
views/layouts/- 其他视图扩展的布局。views/partials/- 预设要跨多个视图重用的小型片段。views/- 可能扩展布局并可能包含部分的全页视图。
避免在这些视图中添加任何 PHP 逻辑,除非与布局有关。业务逻辑应放入
- 辅助文件 (
app/helpers/*.php) - 服务类
- 控制器 (
app/src/Controllers)