phpzm / simples
Requires
- phpzm/core: ^1.0.0
This package is not auto-updated.
Last update: 2020-01-24 17:04:14 UTC
README
“Simples”是一个项目,汇集了一系列用于快速且最小化方式处理PHP的包。少即是多!
安装
要开始使用Simples,您可以使用以下命令:
$ composer create-project phpzm/simples
或者复制仓库的master分支
$ git clone https://github.com/phpzm/simples.git <dir> $ cd <dir> $ rm .git $ composer install
目前您已经下载了基本架构,需要配置一些细节,才能愉快地使用基本资源来开发PHP网站或系统。
环境配置
以下提供的基础配置指向相同的URL:https://:8080 在启动任何服务器模式之前,请复制项目提供的示例.env文件。
$ composer run env:init
Docker
创建项目提供的示例文件的副本
$ composer run docker:init
然后,您可以使用熟悉的命令运行容器,或者使用
$ composer run docker:serve --timeout=0
内置服务器
要使用随PHP提供的开发服务器,请使用以下命令:
$ composer run php:serve --timeout=0
如果一切顺利,访问URL https://:8080 您将看到我们的默认展示页面。
概览
当然,应该工作的URL一切正常,但让我们回顾一下使其运行所发生的事情。
/public
在这个文件夹中,您将找到应用的所有请求的唯一入口。打开其中的index.php文件,我们会看到与Simples文件的第一次交互。除了PHP文件外,还有我们通常称为assets的文件。它们是图像、样式表和用于增强应用资源可视化的资源。这个文件夹将用于公开文档,任何人都可以访问。
/config
此目录包含用于配置应用行为的PHP文件列表。当您查看这些文件时,会发现有一个名为env的函数正在使用,用于定义一些属性。这个函数从.env中检索值。
/app
最后,我们到了活动发生的地方。Simples带有适当的配置,可以使用此目录查询您将创建的文档。由于您可以做很多事情,我们将一切分成几个部分。
/app/resources
间接包含与资源组成相关的文档。它最初配置了3个目录(email, locales, view),但您可以随意扩展它。您可以在config/app.php文件中看到类似的配置指令。根据示例,我们可以使用config('app.resources.root')助手,它将返回值app/resources,这就是Simples定位它所使用的资源的方式。
[config/app.php]
<?php (...) 'resources' => [ 'root' => 'app/resources', ] (...)
我们将在模板部分进一步了解这部分views及其使用。
/app/routes
这是一个建议的路线使用路径。它在config/route.php中描述,其中可以指定一个将初始化以组成应用程序路由的文件数组。
[config/route.php]
<?php (...) 'files' => [ 'app/routes/index.php' ] (...)
因此,当一个HTTP请求发送到public/index.php时,它将开始在app/routes/index.php文件中查找路由。在创建路由的部分,我们将看到如何使用Simples有组织地创建路由。
/app/src
这个文件夹直接与Composer的autoloader相关联,通过在composer.json中进行配置。
[composer.json]
(...)
"autoload": {
"psr-4": {
"App\\": "app/src/"
}
}
(...)
也就是说,您将使用的默认namespace是App,文件应位于上述文件夹中。显然,您可以修改它。请注意,使用PSR-4约定,当您创建具有适当namespace的文档时,您可以透明地使用它。我们将在结构组合部分详细介绍这一点。
/storage
为了表示一个初始建议的路径,我们建议在项目根目录下创建一个名为storage的文件夹,用于维护不能公开访问的文档。
/vendor
vendor文件夹由Composer自动创建。它包含项目将使用的依赖项和文件加载配置。它默认配置在.gitignore文件中,以便由Git忽略。
开始工作
创建路由
默认情况下,哪个第一个路由(或哪些第一个路由)将被调用,位于app/config/route.php中。
应用程序资源的访问配置可以在路由文件中完成。命令可以直接写入文件体(其中$router变量将在作用域中可用)或使用接受$router作为参数的闭包返回。
简单路由
return function($router) { $router->on('GET', '/', function() { return 'Hello World!'; }); }
动态路由
return function($router) { $router->get('/:controller/:method', function($controller, $method) { return 'Hello World!'; }); }
路由组
return function($router) { // lista com arquivos de rota $router->group('GET', '/site', ['more/files/routes.php', 'more/files/site.php']); // pasta que contém arquivos de rotas $router->group('*', '/api', 'api/routes'); }
与控制器交互的路由
return function($router) { $router->post('/client/save', '\Namespace\ClientController@save'); $router->resource('client', '\Namespace\ClientController'); }
$router->resource将创建
| 动词 | 路径 | 动作 | 路由名称 |
|---|---|---|---|
| GET |
/route
|
index | route.index |
| GET |
/route/create
|
create | route.create |
| GET |
/route/{id}
|
show | route.show |
| GET |
/route/{id}/edit
|
edit | route.edit |
| POST |
/route
|
store | route.store |
| PUT/PATCH |
/route/{id}
|
update | route.update |
| DELETE |
/route/{id}
|
destroy | route.destroy |