miladxandi / simplist
Simplist 是一个以最简单的方式创建在线博客的项目。每个 CMS 在其开发的初期都帮助了开发过程,使其更快、更简单。它们也在其框架中制定了一些标准,以提高开发和可用性,但命运随着非专业者的介入而改变。
Requires
- php: ^7.0
- ext-curl: *
- ext-json: *
- ext-pdo: *
- doctrine/inflector: v1.3.0
- guzzlehttp/guzzle: 6.3.3
- illuminate/contracts: 5.7.19
- illuminate/support: v5.7.11
- morilog/jalali: 3.*
- nesbot/carbon: 1.36.2
- symfony/contracts: v1.0.2
Requires (Dev)
- ext-json: *
- doctrine/inflector: v1.3.0
- illuminate/contracts: 5.7.19
- illuminate/support: v5.7.11
- nesbot/carbon: 1.36.2
- phpunit/phpunit: 7
- symfony/contracts: v1.0.2
This package is auto-updated.
Last update: 2024-09-25 10:20:56 UTC
README
Simplist
Simplist 是一个基于 PHP 的超快速微框架。
我们强烈建议您将此框架用于个人博客、新闻机构以及 REST API 开发。
就像任何其他 PHP 框架一样,我们基于 MVC 架构开始了这个项目,并提供了诸如 $Add->Loader
、REST API
、SharedLayouts
、Middlewares
以及预定义的安全概念等特色服务。Simplist 中的所有内容都像在您的服务器上安装它一样简单!
文档
安装
从这个仓库下载它
composer create-project miladxandi/simplist
请记住,您的 PHP 版本应高于 7,并且本地请求地址应设置为
public_html/
之后,您需要设置您的数据库的用户名和表!在本地项目首次使用时,这些值应如下所示
表:simplist_simplist
用户名:root
密码:空(没有值或空字符串)
您可以通过前往模型层并在 Core/Configurations 文件夹中的 Connection.phtml 中更改这些值来更改这些值,或者前往此地址
Core/Configurations/Connection.phtml
注意:在 "Resources" 文件夹中有一个 SQL 表文件,您可以轻松地将它导入到您的本地或在线 MySQL 数据库中
直到您在本地工作目录中工作,HTTPS 协议是关闭的,但如果您想将其上传到您的服务器,可以通过在 Core 文件夹中将 "SecureProtocol" 设置为 true
来打开 HTTPS 协议,在配置文件夹中您可以找到路由文件,或者前往此地址
Core/Configurations/Routing.phtml
您可以将 $SecureProtocol = false;
更改为 $SecureProtocol = true;
安装完成,准备就绪。
路由
要定义您自己的路由,请前往此地址
Route/Setting/Routes.phtml
这里有一个返回数组的数组,它将 URL 作为数组键,将配置作为其值。每个新路由都应完全从以下模板创建
'/aboutus' => [
'target'=>'Main.Home.Aboutus',
'get'=> true,
'post'=> false,
'middleware'=>'Main.Home.Aboutus'
'important'=>false
],
让我逐行描述它
'/aboutus'
这是一个将处理请求地址的 URL,由控制器和中间件处理,是数组的键。注意:我们的路由系统不区分大小写,但您必须定义小写路由。
'target'=>'Main.Home.Aboutus'
这意味着目标控制器位于 "Main" 文件夹的 "Controllers" 文件夹中的 "HomeController",并在请求此地址后调用 "Aboutus" 方法,就像它在
'target'=>'Main.Home.Aboutus'
控制器的末尾所写的那样。您还可以通过获取它来处理Query String
,在它的函数参数中。您还可以在控制器文件中对数据库进行一些请求。给定的Query String
或数据库值应与$Viewbag
名称一起插入到数组中。您可以通过以下代码将它们发送到您的网页:View::Process("Main.Home.Post",$Viewbag);
现在,它可以从 "public_html/View/..." 中请求的 "View" 文件中访问。我们鼓励您将逻辑代码放入模型文件夹中的 "Logic" 文件夹中,而不是在控制器中写入逻辑代码。这个文件夹中有一些非常好的契约,可以帮助您比以往任何时候都更好地开发业务。
注意:控制器和中间件必须使用确切的Controller.phtml
或Middleware.phtml
扩展名创建,但在这里编写时不应包含这些扩展名。例如,我们有一个“HomeController”,但我们可以只写它的名字而不写“Controller”这个词:“Home”
'get'=> true
或 'post'=> false
这些是我们可以在这里定义的通用服务器请求方法。如果你想拒绝任何POST请求,只需将
post
的值更改为false
。然后,你可以看到每个使用POST
请求方法的请求都会显示“请求方法不允许”错误。
'middleware'=>'Main.Home.Aboutus'
在没有请求URL与其定义的请求方法冲突的情况下,在启动控制器之前,我们有一些中间件来进行一些验证。它可以用来检查安全cookies或网站语言选项等。每个中间件都应该在其“状态”键中返回
true
以通过其检查。中间件还可以通过在函数参数中获取它来处理Query String
。就像控制器一样,我们需要它们的纯名称,不带“中间件”这个词。
'important'=>false
如你所读,我们的系统默认情况下不区分大小写,但有时你需要对大小写敏感的URL进行操作以验证某些令牌和敏感数据或其他原因。你可以通过使用
'important'=>true
来更改我们的路由系统规则,或者通过'important'=>false
来关闭它。注意:此键在路由数组中不是必需的。
API
要定义您自己的路由,请前往此地址
Route/Setting/Api.phtml
这里有一个返回数组的数组,它将 URL 作为数组键,将配置作为其值。每个新路由都应完全从以下模板创建
'/api' => [
'target' => 'Api.Home.Index',
'allowed'=> 'get',
'blocked'=> 'DELETE',
'middleware'=>'Main.Home.Index',
'important'=>false
]
让我逐行描述它
'/api'
这是调用API的网址,将处理由控制器和中间件请求的服务,并且是数组的一个键。注意:我们的路由系统不区分大小写,但你必须定义小写路由。
'target' => 'Api.Home.Index'
这意味着目标控制器位于“Controllers”文件夹的“Api”文件夹中的“HomeController”,请求此地址后,“Index”方法将被调用,就像在
'target' => 'Api.Home.Index'
控制器中写的那样。你也可以通过在函数参数中获取它来处理Query String
。你还可以在控制器文件中发出一些数据库请求。我们不鼓励你在控制器中编写逻辑代码,而是鼓励你将它们放在“Model”文件夹中的“Logic”文件夹中。这个文件夹中有一些非常好的契约,可以帮助你比以往任何时候都更好地开发业务。
注意:控制器和中间件必须使用确切的Controller.phtml
或Middleware.phtml
扩展名创建,但在这里编写时不应包含这些扩展名。例如,我们有一个“HomeController”,但我们可以只写它的名字而不写“Controller”这个词:“Home”
'allowed'=> 'get'
或 'blocked'=> 'DELETE'
如果你想让你的应用工作任何HTTP动词,你可以在这里定义它,并用逗号分隔它们,以便你的API使用这些方法。例如,我们希望我们的应用使用
POST
和GET
方法与服务器交互;因此,我们必须在这里定义这两个方法,就像这样
'allowed'=> 'get,post'
然后我们想要限制对服务器请求的一些HTTP动词,我们需要在这个部分的
blocked
部分中写入它们
'blocked'=> 'DELETE'
我们可以在这两个部分中写入我们想要的任何动词数量。
'middleware'=>'Main.Home.Aboutus'
在没有请求URL与其定义的请求方法冲突的情况下,在启动控制器之前,我们有一些中间件来进行一些验证。它可以用来检查安全cookies或网站语言选项等。每个中间件都应该在其“状态”键中返回
true
以通过其检查。中间件还可以通过在函数参数中获取它来处理Query String
。就像控制器一样,我们需要它们的纯名称,不带“中间件”这个词。
'important'=>false
如你所读,我们的系统默认情况下不区分大小写,但有时你需要对大小写敏感的URL进行操作以验证某些令牌和敏感数据或其他原因。你可以通过使用
'important'=>true
来更改我们的路由系统规则,或者通过'important'=>false
来关闭它。注意:此键在路由数组中不是必需的。
特性
oLoad
oLoad
库是一个最简单的服务,定义为帮助你的HTML head
部分更干净。如果你需要使用这个库,你必须在你的视图文件中首先使用这个代码
<?php $Add = new Core\Requirement\oLoad("../../..","Style/Main","Script/Main","Content/Main"); ?>
在这段代码中,你可以为你的JS、CSS、图片等定义不同的位置。由于我们允许你自定义你的应用,../../..
将显示这些内容的默认根目录,但你可以在你创建的每个页面中更改它。
此代码可以导入外部的JS或CSS库或图片。
它还可以添加独特类型的文件到你的项目中。
这是一段完整的代码,展示了如何在HTML上显示一个图片
<?php $Add->Loader("png","eastCloud","Shared",true,false,"eastCloud",24,24,"Style","Class"); ?>
此代码的意思是
<?php $Add->Loader(扩展: "png",名称: "eastCloud",唯一URL: "共享",本地: true,唯一类型: false,图片替代文本: "eastCloud",图片宽度: 24,图片高度: 24,图片样式: "Style",图片类: "Class"); ?>
它将在任何使用它的地方创建一个完整的 <img>
标签。
你可以像这样添加JS和CSS库;但是除了那个方法中 Local
参数之后的所有内容以及它们自己的扩展,例如这样
<?php $Add->Loader("css","Style",null,true); ?>
<?php $Add->Loader("js","Script",null,true); ?>
UniqueUrl
参数允许你定义内部或外部库或图片。如果不需要定义 UniqueUrl
,只需留下一个空的双引号(""
)或传递 null 作为其参数。它默认为 null。
Local
参数表示库或图片是否为本地文件,如果 Local
为 true
,系统将使用提供的参数使用默认根目录查找该文件。
UniqueType
参数必须为 true
,如果扩展不是 js、CSS、png、jpeg、jpg 和 ico。它默认为 false
。
js
扩展将在你调用它的任何地方创建完整的 <script src="../../../Script/Main/main.js"></script>
代码。 css
扩展将在你调用它的任何地方创建完整的 <link rel="stylesheet" type="text/css" href="../../../Style/Shared/File.css">
代码。
共享布局
共享布局 是一个名为 Simplist 的服务,位于视图文件夹中的共享文件夹(public_html/View/Shared
)。
它包含2个文件夹和一个名为 "Layouts" 的默认 .phtml 文件。布局文件可以包含每个项目部分的类。例如,有一个像这样的类
class MainLayouts { public static function _Header() { include "Main/_HeaderLayout.phtml"; } public static function _Menu() { include "Main/_MenuLayout.phtml"; } public static function _Footer() { include "Main/_FooterLayout.phtml"; } }
它包含一些方法来加载一些其他的视图文件作为头部、菜单和页脚。没有复杂的概念。
我们放置了一些带有 ".md" 扩展名的 Markdown 文件作为我们的详细指南文件。我们强烈建议你下载并安装一个 Markdown 查看器,以便更好地查看这些文件。
任务
- 启动器文档
- 完整文档
- 修复身份验证和授权错误
- 使用正则表达式处理请求的 URL
- 为数据库连接、安全协议等创建开发环境
- RESTFUL API 支持