wenprise / mvc
该软件包最新版本(2.1.0)没有可用的许可证信息。
wenprise mvc 框架。
2.1.0
2023-12-14 02:35 UTC
Requires
- php: >=7.3
- composer/installers: ^1.0
- illuminate/container: ^8.83
- illuminate/database: ^8.83
- illuminate/events: ^8.83
- illuminate/filesystem: ^8.83
- illuminate/http: ^8.83
- illuminate/routing: ^8.83
- illuminate/view: ^8.83
README
基于 Themosis 框架,将 MVC 框架添加到 WordPress 中。
用法
先决条件
- 在“永久链接设置”中将永久链接结构设置为
/%postname%/
- 在“阅读设置”中将“您的首页显示”设置为
您的最新文章
使用 composer 安装
在您的主题目录中
$ composer require wenprise/mvc
将 psr-4 自动加载规则添加到 composer.json 中
"autoload": { "psr-4": { "Theme\\": "app/" } },
运行 dump-autoload
命令
$ composer dump-autoload
将自动加载和框架初始化文件包含到您的主题的 functions.php
文件中。
require_once( get_theme_file_path( 'vendor/autoload.php' ) ); require_once( get_theme_file_path( 'app/init.php' ) );
目录结构
主题/app 目录的结构。
├── Controllers │ ├── AccountController.php ├── Models │ ├── Order.php ├── Providers │ └── RoutingService.php ├── init.php └── routes.php
在主题中启动框架
在 init.php
中的代码
namespace Theme; use Theme\Providers\RoutingService; use Wenprise\Mvc\App; class Init { public function __construct() { $GLOBALS[ 'wenprise' ] = App::instance(); /* * 获取服务容器 */ $container = $GLOBALS[ 'wenprise' ]->container; /* * 注册主题视图路径 */ $container[ 'view.finder' ]->addLocation(get_theme_file_path('templates')); /* * 加载配置文件 */ $container[ 'config.finder' ]->addPaths([ get_theme_file_path('app/Config/'), ]); /** * 主题服务提供者 */ $providers = [ RoutingService::class, ]; foreach ($providers as $provider) { $container->register($provider); } } }
路由服务
在 RoutingService.php
中的代码
namespace Theme\Providers; use Wenprise\Facades\Route; use Wenprise\Foundation\ServiceProvider; class RoutingService extends ServiceProvider { public function register() { Route::group( [ 'namespace' => 'Theme\Controllers', ], function () { require get_theme_file_path( 'app/routes.php' ); } ); } }
路由器
在 routes.php
中的代码
Route::prefix( 'account' )->group( function () { Route::match( [ 'get', 'post' ], 'register', 'AccountController@register' ); } );
控制器
示例控制器
namespace Theme\Controllers; use Wenprise\Route\BaseController; class AccountController extends BaseController { /** * User register controller * @return string */ public function register() { } }
模型
视图
参见 https://laravel.net.cn/docs/5.5/blade 或 https://twig.symfony.com.cn/