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 (默認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文件即可。
看