scorninpc/slim-mvc-skel

基于Smarty的Slim Framework 4骨架

1.0.0 2022-04-25 01:19 UTC

This package is auto-updated.

Last update: 2024-09-13 02:13:30 UTC


README

Version Total Downloads GitHub GitHub issues

基于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.phppagesController.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。不要忘记,有很多人为你免费制作东西,让你赚钱