Phpeasy是一个以API为中心的PHP框架。代码与PHP语言本身接近而不是框架。
I.简介
ii。先决条件
iii。安装
这是针对喜欢香草PHP及其简单性的人。如今,您必须遵循编码标准(OOP,固体,干燥等)和MVC框架才能使用PHP进行Web开发。 PHP Frameworks带有过多的文件,配置,类和依赖项。我制作了这个迷你框架,因此PHP开发人员可以在掌握和享受PHP语言本身的同时更快地进行网络开发(是!无需学习这么多库)。
作曲家 - 在根或HTDOCS文件夹内打开一个终端并执行以下命令。
composer create-project vgalvoso/phpeasy my_phpeasy
您可以将[my_phpeasy]更改为所需的任何项目名称。
现在打开浏览器,然后访问http:// localhost/my_phpeasy
在View文件夹中创建视图。
视图路由将根据视图文件夹结构自动创建。
查看下面的示例。
如果视图文件为[index.php]:
(SPA)单页应用程序由视图组件组成。
视图组件仅通过AJAX请求访问。
只需调用core/helper/component();在视图文件的顶部将其指定为视图组件。
示例:查看/admin/users_table.php
< ?= Core/Helper/component(); ? >
< table >
< thead >
< tr >
< th > Username </ th >
< th > First Name </ th >
< th > Last Name </ th >
</ tr >
</ thead >
< tbody id =" users_tbl " >
< tr > < td > No Contents </ td > </ tr >
</ tbody >
</ table > Phpeasy支持REST API。
所有API都放置在API文件夹中。
API路由将自动通过API文件夹文件结构创建,并在使用HTTP动词eg(get(),post(),patch())的PHP文件中实现函数。
因此,例如,您省略了delete()函数,无法调用delete api/users/{id}。
这是用户REST API的示例。
API文件路径:[API/users.php]
路线:
<?php
use Core DAL ;
use function Core Helper error ;
use function Core Helper getRequestBody ;
use function Core Helper response ;
use function Core Helper startAPI ;
startAPI ();
function get (){
$ db = new DAL ();
//GET user by id
if ( defined ( ' URI_PARAM ' )){
$ query = " SELECT * FROM users WHERE id = :id " ;
$ param = [ " id " => URI_PARAM ];
if (! $ user = $ db -> getItem ( $ query , $ param ))
response ([]);
response ([ $ user ]);
}
//GET All users
$ query = " SELECT * FROM users " ;
$ users = $ db -> getItems ( $ query );
response ( $ users );
}
function post (){
$ db = new DAL ();
$ rq = ( object ) getRequestBody ();
$ values = [
" username " => $ rq -> username ,
" firstname " => $ rq -> firstname ,
" lastname " => $ rq -> lastname ,
" usertype " => $ rq -> usertype ,
" password " => password_hash ( $ rq -> password , PASSWORD_BCRYPT )
];
if (! $ db -> insert ( " users " , $ values ))
error ( $ db -> getError ());
response ( " New User added! " );
}
function delete (){
if (! defined ( ' URI_PARAM ' ))
error ( " Invalid Request! Please specify user id " );
$ db = new DAL ();
$ id = URI_PARAM ;
if (! $ db -> delete ( " users " , " id=:id " ,[ " id " => $ id ]))
error ( $ db -> getError ());
response ( " User Deleted Successfuly! " );
}
function patch (){
if (! defined ( ' URI_PARAM ' ))
error ( " Invalid Request! Please specify user id " );
$ db = new DAL ();
$ id = URI_PARAM ;
$ rq = ( object ) getRequestBody ();
$ values = [
" firstname " => $ rq -> firstname ,
" lastname " => $ rq -> lastname ];
$ params = [ " id " => $ id ];
$ db = new DAL ();
if (! $ db -> update ( " users " , " id=:id " , $ values , $ params ))
error ( $ db -> getError ());
response ( " User Updated Successfuly " );
}
//EOF phpeasy中的API鼓励程序编码样式,
因此,这是您可以在API实现中使用的功能列表:
将PHP文件初始化为REST API。
调用此功能后,您可以将HTTP动词作为函数实现。
例子:
<?php
use function Core Helper startAPI ;
startAPI ();
function get (){
//Handle GET request to api/users
}如果您尝试使用除GET以外的HTTP方法请求请求,将收到错误响应。
获取请求主体并将其转换为关联阵列。
例子:
<?php
use Core Helper getRequestBody ;
$ rq = getRequestBody ();
$ username = $ rq [ " username " ];
$ password = $ rq [ " password " ];
//you can convert it to object for easy access
//$rq = (object)$rq;
//$username = $rq->username;
//$password = $rq->password; 根据验证规则验证键值对阵列。
$inputs - 要验证的关联数组。$validations - 符合$数据和值中匹配密钥的密钥的关联数组是验证规则。例子:
<?php
use function Core Helper getRequestBody ;
use function Core Validator validate ;
$ rq = getRequestBody ();
$ dataRules = [ " uname " => " required|string " ,
" upass " => " required|string " ,
" firstName " => " required|string " ,
" lastName " => " required|string " ];
validate ( $ rq , $ dataRules );带有400个状态代码和错误消息的输出响应
$message - 字符串|数组错误消息设置内容类型和状态代码,然后输出内容和退出脚本
$content String |数组 - 输出的内容$statusCode int-响应状态代码(默认200)$contentType字符串 - 内容类型(默认应用程序/JSON)。可用内容类型:[应用/JSON |普通/文字|文本/html] 包括指定的视图
$route字符串 - 查看文件路径主要用于调用水疗组件
重定向到指定的视图。
如果未指定路径,请根据会话重定向。
$view字符串 - 查看路径htmlspeceialchars()的较短语法
$string弦乐生成随机字母数字代码
$length - 要生成的代码长度(默认6) 提取对象键和值,然后存储到会话阵列
$object - 提取示例的对象: <?php
use Core DAL ;
$ db = new DAL ();
if (! $ user = $ db -> getItem ( 1 ))
invalid ( " User does not exist! " );
objToSession ( $ userInfo );生成新文件名并上传文件
string $uploadFile $ _file键string $uploadPath位置上传文件必须添加“/”获取/设置会话变量
$sessionVar会话密钥$value设置一个会话值,如果null 将一个对象数组转换为包含指定项目值的索引数组。
$objArr数组如果ibjects转换$item - 提取的对象项目Phpeasy介绍了用于数据库操作的DAL()类。支持MySQL,MSSQL和SQLITE。
在config/database.php中设置数据库配置
以下是dal()函数
$ db = new DAL ();执行插入语句;
$table - 要插入的表名称$values - 关联数组包含匹配表字段的键和要插入的值。例子:
$ values = [ " username " => $ uname ,
" password " => $ upass ,
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ db -> insert ( " users " , $ values );执行更新语句
string $table更新表string $condition状况,例如id =:idarray $values关联数组包含要更新的值。 ["age" => 27]array $params值,例如。 [“ ID” => 1]例子:
$ values = [
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ params = [ " id " => 1 ];
$ db = new DAL ();
$ db -> update ( " users " , " id=:id " , $ values , $ params );执行删除语句
string $table从表中删除的表string $condition条件。 id =:id and name =:名称array $params值,例如。 [“ id” => 1,“名称” =>“ Juan Dela Cruz”]例子:
$ delete ( " users " , " id=:id " ,[ " id " => 1 ]);选择多个项目
string $query选择语句array $inputs参数用于准备的语句默认值(null)例子:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE lastname = :surname " ;
$ params = [ " surname " => $ lastName ];
$ users = $ db -> getItems ( $ sql , $ params );选择单行查询
string $query选择语句array $inputs参数用于准备的语句默认值(null)例子:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE id=:userId " ;
$ params = [ " userId " => 1 ];
$ users = $ db -> getItem ( $ sql , $ params );启动数据库事务。
提交数据库事务。
回滚数据库事务。
返回数据库错误
将最后一个插入到数据库中
string $field指定最后一个字段,默认为null 获取当前使用的数据库Friver。
- api/getAllUser.php
```php
<?php
$db = new DAL();
$users = new Users($db);
$usersList = $users->getAll();
您可以使用模型或不依赖于项目要求。
DAL类可直接在API文件中访问,您可以在无需创建模型的情况下直接执行API实现的查询。
phpeasy是渐进的,您可以添加模型,如果愿意,只需添加其他目录,只需更新Composer.json文件即可。
看