Phpeasy هو إطار PHP المتمحور حول API. رمز بالقرب من لغة PHP نفسها بدلاً من إطار عمل.
I. مقدمة
الثاني. المتطلبات المسبقة
ثالثا. تثبيت
هذا لشخص يحب الفانيليا PHP وبساطته. في الوقت الحاضر ، يجب اتباع معايير الترميز (OOP ، الصلبة ، الجافة ، إلخ.) وأطر MVC للقيام بتطوير الويب باستخدام PHP. يأتي PHP Frameworks مع الكثير من الملفات والتكوينات والفئات والتبعيات. لقد صنعت هذا الإطار المصغر حتى يتمكن مطورو PHP من القيام بتطوير الويب بشكل أسرع أثناء إتقان لغة PHP نفسها (نعم! لا حاجة لتعلم الكثير من المكتبات).
الملحن - افتح محطة داخل مجلد الجذر أو HTDOCS وتنفيذ الأمر أدناه.
composer create-project vgalvoso/phpeasy my_phpeasy
يمكنك تغيير [my_phpeasy] إلى أي اسم مشروع تريده.
افتح الآن متصفحك وانتقل إلى http: // localhost/my_phpeasy
إنشاء طرق عرض داخل مجلد عرض.
سيتم إنشاء طرق العرض تلقائيًا بناءً على بنية مجلد العرض.
انظر إلى الأمثلة أدناه.
يمكنك ommit اسم الملف إذا تم تسمية ملف العرض [index.php]:
(SPA) تتكون تطبيقات صفحة واحدة من مكونات العرض.
لا يمكن الوصول إلى مكونات العرض إلا من خلال طلبات AJAX.
فقط استدعاء core/helper/component () ؛ في أعلى ملف العرض لتحديده كمكون عرض.
مثال: عرض/مسؤول/مستخدمون
< ?= 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 وتطبيقها داخل ملف PHP المسمى مع HTTP VERBS على سبيل المثال (GET () ، post () ، patch ()).
على سبيل المثال ، قمت بحذف وظيفة DELETE () ، لا يمكنك الاتصال بحذف API/USERS/{id}.
فيما يلي مثال على واجهة برمجة تطبيقات REST للمستخدمين.
مسار ملف API: [API/user.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:
تهيئة ملف PHP كأبي راحة.
بعد استدعاء هذه الوظيفة ، يمكنك تنفيذ أفعال HTTP كدالة.
مثال:
<?php
use function Core Helper startAPI ;
startAPI ();
function get (){
//Handle GET request to api/users
}سيتم استلام استجابة الخطأ إذا حاولت طلب استخدام أساليب HTTP بخلاف Get.
احصل على طلب الجسم وتحويله إلى صفيف ASSC.
مثال:
<?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 | Array - المحتوى للإخراج$statusCode int - رمز حالة الاستجابة (افتراضي 200)$contentType String - نوع المحتوى (التطبيق الافتراضي/JSON). أنواع المحتوى المتاحة: [Application/JSON | عادي/نص | النص/HTML] تضمين عرض محدد
$route string - عرض مسار الملفيستخدم في الغالب لمكون 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 للحصول على ملف التحميل "/" إلى النهايةالحصول على/تعيين متغير جلسة
$sessionVar - مفتاح الجلسة$value - تعيين قيمة جلسة إذا كانت فارغة قم بتحويل مجموعة من الكائنات إلى صفيف مفهرس تحتوي على قيم عنصر محدد.
$objArr - Array If Icjects للتحويل$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 على سبيل المثال. معرف =: معرفarray $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 selectarray $inputs لبيان المعدة الافتراضي (NULL)مثال:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE lastname = :surname " ;
$ params = [ " surname " => $ lastName ];
$ users = $ db -> getItems ( $ sql , $ params );حدد استعلام صف واحد
string $query selectarray $inputs لبيان المعدة الافتراضي (NULL)مثال:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE id=:userId " ;
$ params = [ " userId " => 1 ];
$ users = $ db -> getItem ( $ sql , $ params );بدء معاملة قاعدة البيانات.
ارتكاب معاملة قاعدة البيانات.
معاملة قاعدة البيانات التراجع.
إرجاع أخطاء قاعدة البيانات
احصل على إدراج LastId على قاعدة البيانات
string $field حدد حقلًا الأخير ، الافتراضي الفارغ احصل على قاعدة البيانات التي يتم استخدامها حاليًا.
- api/getAllUser.php
```php
<?php
$db = new DAL();
$users = new Users($db);
$usersList = $users->getAll();
يمكنك استخدام النماذج أو لا اعتمادًا على متطلبات المشروع.
يمكن الوصول إلى فئة DAL مباشرة في ملفات API ، يمكنك تنفيذ استعلام مباشرة على تطبيق API دون إنشاء نموذج.
Phpeasy تقدمي ، يمكنك إضافة نماذج أو خدمات إذا أردت ، ما عليك سوى تحديث ملف Composer.json إذا قمت بإضافة دليل آخر.
يرى