Phpeasyは、API中心のPHPフレームワークです。フレームワークではなく、PHP言語自体に近いコード。
I.イントロ
ii。前提条件
iii。インストール
これは、バニラPHPとそのシンプルさを愛する人のためです。現在、PHPを使用してWeb開発を行うには、コーディング標準(OOP、Solid、Dryなど)とMVCフレームワークに従う必要があります。そこにあるPHPフレームワークには、ファイル、構成、クラス、依存関係が多すぎます。このミニフレームワークを作成して、PHP開発者がPHP言語自体を習得して楽しんでいる間、Web開発をより速く実行できるようにしました(はい!多くのライブラリを学ぶ必要はありません)。
Composer-ルートまたはHTDOCSフォルダー内に端子を開き、以下のコマンドを実行します。
composer create-project vgalvoso/phpeasy my_phpeasy
[my_phpeasy]を必要なプロジェクト名に変更できます。
ブラウザを開いて、http:// localhost/my_phpeasyにアクセスします
ビューフォルダー内のビューを作成します。
ビュールートは、ビューフォルダー構造に基づいて自動的に作成されます。
以下の例を見てください。
[index.php]という名前のビューファイルがある場合、ファイル名を並べることができます。
(SPA)シングルページアプリケーションは、ビューコンポーネントで構成されています。
ビューコンポーネントは、AJAXリクエストを通じてのみアクセスできます。
CORE/HELPER/CONPONENT()を呼び出すだけです。ビューファイルの上部で、ビューコンポーネントとして指定します。
例:view/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メソッドを使用してリクエストしようとすると、エラー応答が受信されます。
リクエストボディを取得し、Assocアレイに変換します。
例:
<?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列 - ファイルパスを表示します主にSPAコンポーネントの呼び出しに使用されます
指定されたビューにリダイレクトします。
パスが指定されていない場合は、セッションに基づいてリダイレクトします。
$view文字列 - 表示するパスhtmlspecialchars()の短い構文
$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 uploadファイルの場所は、最後に "/"を追加する必要がありますセッション変数を取得/設定します
$sessionVarセッションキー$value -nullの場合はセッション値を設定します指定されたアイテムの値を含むインデックス付き配列に一連のオブジェクトを変換します。
$objArr変換するためにIbjectがある場合は配列$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 =:namearray $params値["id" => 1、 "name" => "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 );データベーストランザクションを開始します。
データベーストランザクションをコミットします。
ロールバックデータベーストランザクション。
データベースエラーを返します
LastIDをデータベースに挿入します
string $field LastIDフィールド、デフォルトのnullを指定します現在使用されているデータベースフリーバーを入手してください。
- api/getAllUser.php
```php
<?php
$db = new DAL();
$users = new Users($db);
$usersList = $users->getAll();
プロジェクトの要件に応じて、モデルを使用するかどうかを使用できます。
DALクラスはAPIファイルで直接アクセスでき、モデルを作成せずにAPI実装でクエリを直接実行できます。
Phpeasyはプログレッシブです。モデル、サービスを追加して、必要に応じて、他のディレクトリを追加した場合はComposer.jsonファイルを更新できます。
見る