scorninpc / slim-mvc-skel
基于Smarty的Slim Framework 4骨架
Requires
- scorninpc/slim-mvc: ^1.0
- slim/psr7: ^1.5
- slim/slim: ^4.0
README
基于Smarty模板引擎的Slim MVC骨架
这是一个纯Slim Framework 4和Smarty模板引擎骨架。该项目仅包含index.php和目录结构,从预定义的位置获取模板,基于控制器/动作
构建于
没有以下贡献,我无法创建这个骨架
安装
只需克隆此存储库,并使用Composer下载依赖项
$ git clone https://github.com/scorninpc/slim-mvc-skel.git mywebsite.com.br
$ cd mywebsite.com.br
$ composer update
$ php -S localhost:8080
以下命令将
- 下载此存储库;
- 更新依赖项,如Slim和Smarty;
- 创建auload
- 启动PHP内置服务器
入门指南
要创建新页面,你需要
- 创建新路由
- 创建或使用现有控制器
- 创建动作
- 创建模板文件
路由
路由位于application/configs/routes.php文件中。此结构很简单
'test' => [ // Name of route 'pattern' => "/hello[/{somevar}]", // URL 'type' => ['GET'], // Type 'defaults' => [ 'module' => "main", // Controller 'controller' => "index", // Controller 'action' => "hello", // Action 'somevar' => 1 // Some parameter, default if not passed on url ], ],
控制器
现在你需要创建控制器,位于模块的Controller目录中。模式以nameController.php
创建,例如productsController.php
或pagesController.php
。类必须扩展\Slim\Mvc\Controller
以提供视图和模板文件的位置
动作
有了控制器后,现在是时候创建动作了,它将在页面访问时触发。当用户访问路由时,骨架将调用nameController::nameAction()
方法。所以,如果你有一个调用产品控制器的路由,并且调用details动作,骨架将触发productsController::detailsAction()
在这个例子中,你的控制器将类似于
<?php namespace Application\Main\Controllers; class productsController extends \Slim\Mvc\Controller { public function detailsAction() { } }
视图
此骨架将使用模式ControllerName + ActionName来创建模板文件的路径,位于Views
目录中。所以在这个例子中,你需要创建文件application/modules/Main/Views/products/details.tpl
来存储此页面的HTML,它将添加到application/modules/Main/Views/layouts/template.tpl
布局内容中。
模块
现在这个骨架默认使用模块,但如果你想要删除模块,更改路由以从路由中删除modules
变量。例如
'test' => [ // Name of route 'pattern' => "/hello[/{somevar}]", // URL 'type' => ['GET'], // Type 'defaults' => [ //'module' => "main", // Module 'controller' => "index", // Controller 'action' => "hello", // Action 'somevar' => 1 // Some parameter, default if not passed on url ], ],
并且需要从application/configs/config.development.php
中删除模块目录文件夹。例如
'application' => [ 'name' => "Application", 'location' => dirname(__FILE__) . "/..", // 'modules_location' => dirname(__FILE__) . "/../modules", ],
现在你需要更改`composer.json``以更改类的目录
"autoload": { "psr-4": { "Application\\": "application/" } }
这将查找位于application/Controllers/indexController.php
的控制器,动作helloAction()
,并将查找模板位于application/Views/index/hello.tpl
贡献
如果你想帮忙,只需使用它。使用问题选项卡推荐任何可以帮助的事情,例如一些配置,一些库如数据库,或任何有用的东西
作者
鸣谢
我不能忘记感谢Slim团队,他们提供了一个快速、最小化和可爱的框架,以及Smarty社区,他们创造了更好的模板引擎
许可
这使用GNU v3.0。这是一个强大的copyleft许可,并且依赖于提供受许可作品和修改的完整源代码,包括使用受许可作品创建的更大作品,在相同的许可下。必须保留版权和许可通知。贡献者提供对专利权利的明确授予。
但如果你使用此骨架赚钱,请让我们将1%的收益捐赠给像我这样的开发者,或者Slim,或者Smarty。不要忘记,有很多人为你免费制作东西,让你赚钱