dxuartz/nano

微型MVC库

v0.3.4 2022-05-31 17:44 UTC

README

微型MVC库

安装

要安装此依赖项,只需执行以下命令

composer require dxuartz/nano

使用方法

第1步:在项目根目录下创建一个用于访问数据库的配置文件,结构如下:文件名:nano.conf.ini

[database]
host = "127.0.0.1"  ; host do servidor MySQL
user = "root"       ; usuário com acesso ao banco
pass = "pass"       ; senha do usuário
name = "nano"       ; nome do banco de dados
port = "3306"       ; porta do MySQL no servidor
timezone = "-3:00"  ; timezone da sua área

第2步:在项目根目录下创建目录结构,最好包含一个/public目录作为应用的document_root,以及一个同级的/src目录。/public目录至少包含以下两个文件,/src目录包含应用源代码。

/public
   .htaccess
   router.php
/src
   (...)

文件 .htaccess

<IfModule mod_rewrite.c>
	SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
	RewriteEngine On
	RewriteBase /
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteRule ^(.*)/$                           /$1 [R=301,L]
	RewriteRule ^/?$                              /router.php?url [NC,L,QSA]
	RewriteRule ^([A-Za-z0-9-_/]+)/?$             /router.php?url=$1 [NC,L,QSA]
	RewriteCond %{REQUEST_URI} .*\.(php|html)
	RewriteRule ^(.*)/                            / [R]
</IfModule>

文件 router.php

<?php
require __DIR__ . '/../vendor/autoload.php';
$route = \Nano\Route::getInstance();
$route->setRequestMethod( $_SERVER['REQUEST_METHOD'] ?? '' );
$route->setUrl( $_GET['url'] ?? '' );
$route->setViewPath( __DIR__ . '/../src/views/app/' );
$route->setLayout( __DIR__ . '/../src/views/layouts/app.php' );

$route->get( 'people' )->action( '\Controllers\People#list' )->view( 'people/list.php' );
$route->get( 'people/:person_id' )->action( '\Controllers\People#show' )->view( 'people/show.php' );

第3步:使用示例

<?php
use Nano\Core\Dao;
require __DIR__ . '/vendor/autoload.php';
$person = Dao::find( 'Person', 1 );

要求

需要PHP 7.4或更高版本。