أسرع طريقة لبناء مواقع ويب بسيطة باستخدام PHP!
تثبيت
حول فيلوكس
بنيان
تكوين
فصول
وظائف
الأوامر
موضوعات
تمديد فيلوكس
MVC
القولون
المصادقة
Changelog
الوثائق
إذا كنت تحب هذا المشروع وترغب في دعم تطوره ، فسيكون موضع تقدير!

تحقق من العرض التوضيحي أو اللعب مع REPL .
هل تشعر بالرغبة في القراءة؟ تحقق من واجهة برمجة التطبيقات الكاملة على موقع الوثائق على marwanalsoltany.github.io/velox .
composer create-project marwanalsoltany/velox my-velox-app ملاحظة: قد تحتاج إلى إضافة --stability=dev اعتمادًا على الإصدار/الفرع. قد ترغب أيضًا في إضافة العلم --no-dev لعدم تثبيت تبعيات التطوير.
git clone https://github.com/MarwanAlsoltany/velox.git my-velox-appحقيقة: إذا كنت لا تريد استخدام أي حزم طرف ثالث آخر. تثبيت Velox باستخدام GIT يكفي.
قم بتنزيل Velox كـ .zip أو .tar.gz واستخراجه في دليل جذر الويب الخاص بك.
نصيحة: إذا كنت ترغب في اختبار Velox بسرعة ولم يكن لديك أي خادم ويب متاح ، فاستخدم أي طريقة تثبيت وتشغيل php bin/app-serve من Inside Velox. سيقوم هذا الأمر بدور خادم ويب تطوير على localhost:8000 (لاحظ أنك تحتاج إلى تثبيت PHP على الأقل على نظامك).
Velox هو عمل فني صغير الوزن يجعل إنشاء موقع ويب بسيط باستخدام PHP Hoyful. يساعدك على إنشاء مواقع مواقع مقاومة في المستقبل بشكل أسرع وأكثر كفاءة. يوفر مكونات تسهل عملية إنشاء موقع ويب باستخدام PHP. لا يحتوي Velox على أي تبعيات ، يتم تضمين حزمة Velox وكل ما تحتاجه في المشروع نفسه. كل ما يوفره Velox هو وسيلة للعمل مع البيانات ، تمرير البيانات ، وتسجيل الطرق ، والتفاعل مع قاعدة البيانات ، وعرض طرق العرض ، والاستثناءات المعالجة ، ورمز التحميل التلقائي ، وحل الأصول. يوفر العرض وأجزاء وحدة التحكم في نمط تصميم MVC . يحدق في v1.3.0 ، يوفر Velox أيضًا جزء النموذج ، مما يجعله إطارًا MVC مميزًا تمامًا ويبدأ من v1.4.0 ، كما أنه يتم شحنه مع نظام مصادقة بسيط. يمكن أيضًا استخدام Velox كمولد موقع ثابت إذا كان كل ما تحتاجه هو ملفات HTML في النهاية.
تم إنشاء Velox لحل مشكلة محددة ، إنها طريقة لإنشاء موقع ويب بين الديناميكي والستاتي ، وسيلة لإنشاء موقع ويب بسيط به صفحات قليلة دون إجباره على استخدام إطار عمل أو CMS يأتي مع الكثير من الأشياء التي لن تعتاد أبدًا ، وهي خفيفة الوزن ، الحد الأدنى ، مباشرة إلى هذه النقطة.
لا يُنصح باستخدام Velox إذا كان لديك مشروع وسيط ، فستكون أفضل حالًا باستخدام إطار عمل راسخ. ليست Velox مبادرة لإعادة اختراع العجلة ، يمكنك إلقاء نظرة على Velox باعتبارها بداية بداية للمشاريع الصغيرة.
لدى Velox حالة استخدام خاصة جدًا ومواقع ويب بسيطة ، وهنا تعني مواقع الويب البسيطة حقًا. الميزة هي أنه ليس لديك أشياء لا تحتاجها. إن مقارنة Velox مع Laravel أو Symfony أمر غير ذي صلة ، حيث أن هذه الأطر تلعب في منطقة مختلفة تمامًا ، تجدر الإشارة أيضًا إلى أن Velox أبسط بكثير من التجويف أو النحيف.
| دليل | وصف |
|---|---|
bootstrap | هذا هو المكان الذي يقوم فيه Velox بتمهيد التطبيق. عادة لا يتعين عليك تغيير أي شيء في هذا الدليل ، إلا إذا كنت تريد تمديد وظائف Velox إلى ما وراء الأشياء الأساسية. |
bin | هذا هو المكان الذي يتم فيه وضع PHP التنفيذيين. يمكنك إضافة لك بحرية ، أو حذف الدليل بأكمله. |
app | هذا هو المكان الذي سيتم فيه وضع منطق الواجهة الخلفية الخاصة بك. ستعمل في الغالب هنا في الجزء الخلفي من تطبيقك. |
classes | هذا هو المكان الذي تعيش فيه ملفات مصدر Velox. يجب ألا تلمس أي شيء هنا إلا إذا كنت ترغب في إنشاء نسختك الخاصة من Velox. |
functions | هذا هو المكان الذي يتم فيه تحميل جميع الوظائف التي يتم تحميلها في التطبيق المباشر. يمكنك إضافة لك بحرية ، أو حذف الدليل بأكمله. |
includes | هذا هو المكان الذي سيتم فيه وضع جميع الملفات التي يجب تحميلها مسبقًا. يمكنك إضافة لك بحرية ، أو حذف الدليل بأكمله. |
themes | هذا هو المكان الذي سيتم فيه وضع جميع سمات الواجهة الأمامية. ستعمل في الغالب هنا في الجزء الأمامي من تطبيقك. |
config | هذا هو المكان الذي ستعيش فيه جميع ملفات التكوين. يمكن الوصول إلى جميع الملفات هنا باستخدام فئة Config في وقت التشغيل. |
storage | هذا هو المكان الذي ستكتب فيه Velox ذاكرة التخزين المؤقت والسجلات. يمكنك أيضًا استخدام هذا الدليل لتخزين الأصول على مستوى التثبيت. |
public | هذا هو المكان الذي يجب أن تضع فيه index.php مع مرفوع للأصول الثابتة ( assets/ دليل النشط النشط على سبيل المثال) لتحقيق أقصى قدر من الأمان. يمكنك حذف هذا الدليل بحرية إذا كنت تريد ذلك. |
vendor | هذا هو المكان الذي سيتم فيه وضع تبعيات الملحن الخاصة بك. يمكنك حذف هذا الدليل بحرية إذا كنت لا ترغب في استخدام الملحن. |
نصيحة: تم توثيق معظم الملفات المدرجة في هذه الدلائل. ألقِ نظرة علىهم لمعرفة المزيد عن Velox.
نقطة الدخول لتطبيق Velox هي index.php ، هنا تحتاج إلى طلب bootstrap/autoload.php ، وتسجيل بعض الطرق مع معالجاتهم باستخدام Router::class وبدء جهاز التوجيه. هذا كل ما تحتاجه للحصول على تطبيق Velox يعمل.
<?php
require ' bootstrap/autoload.php ' ;
Router:: handle ( ' / ' , function () {
return View:: render ( ' home ' , [ ' title ' => ' Home ' ]);
});
Router:: start (); بالإضافة إلى ذلك ، يمكنك إضافة الأدوات الوسطى باستخدام Router::middleware() و/أو إعداد معالجات 404 و 405 باستخدام {global.errorPages.CODE} قيمة التكوين.
بدلاً من ذلك ، يمكنك استخراج "جزء تسجيل المسارات" في ملفه الخاص وإعلام Velox به باستخدام bootstrap/additional.php . بدءًا من v1.2.0 يقوم Velox بذلك افتراضيًا ، includes/routes/web.php حيث يجب عليك تسجيل طرقك. سيبدأ جهاز التوجيه أيضًا تلقائيًا إذا لم يتم بدء تشغيله بشكل صريح.
ملاحظة: لكي تعمل Velox بشكل صحيح وأمان ، تحتاج إلى إعادة توجيه جميع الطلبات إلى نقطة إدخال التطبيق ( index.php ) وحظر جميع الطلبات إلى ملفات PHP الأخرى على الخادم (ألق نظرة على .htaccess.dist للبدء مع Apache).
يسرد الجدول التالي جميع ملفات التكوين التي يتم شحنها باستخدام Velox.
| ملف التكوين | وصف |
|---|---|
global.php | يحتوي ملف التكوين هذا على بعض المتغيرات العالمية التي تستخدمها جميع الفئات تقريبًا (التكوين على مستوى التطبيق). |
router.php | يمكن استخدام ملف التكوين هذا لتجاوز Router::class الافتراضية. |
session.php | يحتوي ملف التكوين هذا على تكوين الجلسة ، ويتم استخدامه بواسطة Session::class . |
database.php | يحتوي ملف التكوين هذا على بيانات اعتماد قاعدة البيانات ، ويتم استخدامه بواسطة Database::class . |
auth.php | يحتوي ملف التكوين هذا على تكوين المصادقة ، يتم استخدامه بواسطة Auth::class . |
theme.php | يمكن استخدام ملف التكوين هذا لتحرير/تمديد تكوين السمة. |
view.php | يمكن استخدام ملف التكوين هذا لتخصيص كل شيء حول المشاهدات. يتم استخدامه من خلال View::class . |
data.php | يمكن استخدام ملف التكوين هذا لتوفير أي بيانات تعسفية ، والتي سيتم حقنها بعد ذلك في Data::class . |
cli.php | يمكن استخدام ملف التكوين هذا لتمكين/تعطيل الأوامر أو تغيير وسيطاتهم. |
الحقيقة: يمكنك إضافة ملفات التكوين الخاصة بك بحرية أيضًا ، كل ما عليك فعله هو إنشاء ملف جديد تحت /config وإضافة التكوين الخاص بك إليه. ستعرف Velox عن هذا الملف وتحميله في التطبيق. يمكنك الوصول إلى التكوين الخاص بك عبر Config::get('filename.whateverKeyYouWrote') .
تنقسم فصول فيلوكس إلى أربعة مساحات أسماء:
MAKSVeloxMAKSVeloxBackendMAKSVeloxFrontendMAKSVeloxHelperيسرد الجدول التالي جميع الفئات المتاحة مع وصفها:
| فصل | وصف |
|---|---|
VeloxApp | فئة تعمل كقائد خدمة أساسي لـ Velox. |
BackendEvent | الفصل الذي يوفر وظائف معالجة الأحداث البسيطة (الإرسال والاستماع). |
BackendConfig | الفئة التي تقوم بتحميل كل شيء من دليل /config وجعله صفيفًا يمكن الوصول إليه عبر الترشيح. |
BackendRouter | فئة تعمل كجهاز توجيه ونقطة دخول للتطبيق. |
BackendGlobals | فئة تعمل بمثابة تجريد/غلاف للعمل مع SuperGlobals. |
BackendSession | الفصل الذي يوفر واجهة بسيطة للعمل مع الجلسات. |
BackendController | فئة مجردة تعمل كوحدة تحكم قاعدة يمكن تمديدها لجعل معالجات لجهاز التوجيه. |
BackendDatabase | فئة تمثل قاعدة البيانات وتتعامل مع عمليات قاعدة البيانات. |
BackendModel | فئة مجردة تعمل كنموذج أساسي يمكن تمديده لإنشاء نماذج مخصصة. |
BackendAuth | فئة تعمل كنظام مصادقة للمستخدمين. |
FrontendData | فئة تعمل بمثابة حقيبة/متجر بيانات مجردة يمكن الوصول إليها من خلال الترشيح النقطي. |
FrontendView | إن الفئة التي تجعل الملفات عرض (تخطيطات ، صفحات ، وجزارات) مع القدرة على تضمين ملفات إضافية ، تقسيم محتوى الصفحة إلى أقسام وذاكرة التخزين المؤقت التي يتم تقديمها. |
FrontendHTML | فئة تعمل كواجهة بطلاقة لكتابة HTML في PHP. كما أنه يساعد في إنشاء عناصر HTML أثناء الطيران. |
FrontendPath | فئة تعمل بمثابة حل مسار للمسارات/عناوين URL المختلفة للتطبيق. |
HelperDumper | فئة تتخلص من المتغيرات والاستثناء في تنسيق لطيف. |
HelperMisc | فئة تعمل كحامل لمختلف وظيفة المنفعة المتنوعة. |
ملاحظة: كل ما توفره حزمة Velox خارج المربع.
حقيقة: App ، Event ، Config ، Router ، Globals ، Session ، Database ، Auth ، Data ، View ، HTML ، مسار فئات Path مستعار على مساحة الاسم الجذر لسهولة الاستخدام.
تنقسم وظائف Velox إلى هذه الملفات:
helpers.php .html.php : هذا هو المكان الذي تعيش فيه وظائف HTML Helper ، فهذه ليست سوى الأسماء المستعارة لوظائف PHP الأكثر استخدامًا مع HTML.يسرد الجدول التالي جميع الوظائف المتاحة وأي فئة/مجموعة ينتمون إليها:
| الفصل/المجموعة | وظيفة (ق) |
|---|---|
App::class | app() ،abort() ،terminate() |
Event::class | event() |
Config::class | config() |
Router::class | router() ،handle() ،redirect() ،forward() |
Database::class | database() |
Globals::class | globals() |
Session::class | session() ،flash() ،csrf() |
Auth::class | auth() |
View::class | view() ،render() ،render_layout() ،render_page() ،render_partial() ،section_push() ،section_reset() ،section_start() ،section_end() ،section_yield() ،include_file() |
Data::class | data() ،data_has() ،data_get() ،data_set() |
HTML::class | html() |
Path::class | path() ،app_path_current() ،app_url_current() ،app_path() ،app_url() ،theme_path() ،theme_url() ،assets_path() ،assets_url() |
Dumper::class | dd() ،dump() ،dump_exception() |
| HTML المساعدين | he() ، hd() ، hse() ، hsd() ، st() ، nb() |
الحقيقة: يمكنك إضافة وظائفك الخاصة بحرية أيضًا ، كل ما عليك فعله هو إنشاء ملف جديد تحت /functions وإضافة وظائفك إليه. ستعرف Velox عن هذا الملف وتحميله في التطبيق.
يأتي Velox مع بعض الأوامر المفيدة التي يمكنك استخدامها للقيام ببعض المهام المتكررة. يمكنك تنفيذ هذه الأوامر باستخدام php bin/{command-name} .
يسرد الجدول التالي جميع الأوامر المتاحة مع وصفها.
| يأمر | وصف |
|---|---|
app-serve | يبدأ هذا الأمر خادم تطوير. |
app-mirror | يعكس هذا الأمر التطبيق في /public . |
config-cache | هذا الأمر يخبؤ التكوين الحالي. |
config-dump | هذا الأمر يتفريغ التكوين الحالي مع تمييز بناء الجملة. |
cache-clear | هذا الأمر يمسح ذاكرة التخزين المؤقت. |
يمكنك تخصيص هذه الأوامر باستخدام ملف config/cli.php . هنا يمكنك تمكين/تعطيلهم أو تقديم حجج مختلفة لهم.
إذا كنت ترغب في جعل كل هذه الأوامر متاحة عبر واجهة واحدة. تحقق من مزيج الحزمة الآخر الخاص بي ، والذي سيفعل ذلك من أجلك وأكثر من ذلك.
تم بناء Velox حول فكرة الموضوعات ، ويتم تقسيم موضوع إلى أربع أدلة:
assets/ الدليل هو المكان الذي سيتم فيه وضع جميع أصولك الثابتة المرتبطة بهذا الموضوع.layouts/ الدليل هو المكان الذي تحدد فيه تخطيطاتك. التصميم في مصطلحات Velox هو الإطار الخارجي لصفحة الويب.pages/ الدليل هو المكان الذي تضع فيه المحتوى الخاص بكل صفحة ، وسيتم لف الصفحة بعد ذلك ببعض التصميمات التي تختارها ويتم تقديمها أخيرًا. صفحة في مصطلحات Velox هي المحتوى الفعلي لصفحة الويب.partials/ الدليل هو المكان الذي تضع فيه جميع القطع القابلة لإعادة الاستخدام من الموضوع ، والتي سيتم استخدامها بعد ذلك في تخطيطاتك أو صفحاتك أو غيرها من الجزارات. يمكن أن يكون مثال جيد على الجزأين : المكونات ، وتشمل ، وعناصر المحتوى . يمكنك تخصيص سلوك السمات باستخدام ملف config/theme.php . هنا يمكنك تعيين السمة النشطة مع المفتاح active . يمكن أن ترث السمات من بعضها البعض عن طريق تعيين الوالدين (الأولياء) باستخدام مفتاح parent . يمكنك أيضًا تغيير بنية دليل المظهر إذا كنت ترغب في استخدام مفتاح paths . تكوينات أخرى (التخزين المؤقت على سبيل المثال) والتي تستحق إلقاء نظرة عليها علاقة بالموضوعات في ملف config/view.php .
النصيحة: يمكنك إلقاء نظرة على موضوع velox المقدم لمعرفة كيفية عمل جميع الأشياء معًا في الممارسة العملية.
themes/velox/layouts/main.phtmlthemes/velox/pages/home.phtmlthemes/velox/partials/text-image.phtml لإضافة فصولك الخاصة ، استخدم app/ الدليل ، هذا هو المكان الذي يجب أن تضعه فيه منطق أعمالك. لاحظ أنه يجب عليك اتباع PSR-4 حتى يتم تحميل Velox فصولك. راجع app/Controller/DefaultController.php ، للحصول على فكرة.
فيما يلي قائمة ببعض الملفات المهمة التي يجب عليك مراعاتها عند العمل مع Velox:
autoload/additional.php .config/data.php إضافية.includes/routes/web.php (بدءًا من v1.2.0 ).includes/events/system.php (بدءًا من v1.2.0 ). <?php
namespace App Model ;
use MAKS Velox Backend Model ;
class Person extends Model
{
protected static ? string $ table = ' persons ' ;
protected static ? array $ columns = [ ' id ' , ' first_name ' , ' last_name ' , ' age ' , ...];
protected static ? string $ primaryKey = ' id ' ;
public static function schema (): string
{
// return SQL to create the table
}
} <?php
use App Model Person ;
// creating/manipulating models
$ person = new Person (); // set attributes later via setters or public assignment.
$ person = new Person([ ' first_name ' => $ value , . . . ]); // set attributes in constructor
$ person -> get ( ' first_name ' ); // get an attribute
$ person -> set ( ' last_name ' , $ value ); // set an attribute
$ person -> getFirstName (); // case will be changed to 'snake_case' automatically.
$ person -> setLastName ( $ value ); // case will be changed to 'snake_case' automatically.
$ person -> firstName ; // case will be changed to 'snake_case' automatically.
$ person -> lastName = $ value ; // case will be changed to 'snake_case' automatically.
$ attributes = $ person -> getAttributes (); // returns all attributes.
$ person -> save (); // persists the model in the database.
$ person -> update ([ ' first_name ' => $ value ]); // updates the model and save changes in the database.
$ person -> delete (); // deletes the model from the database.
Person:: create ( $ attributes ); // creates a new model instance, call save() on the instance to save it in the database.
Person:: destroy ( $ id ); // destroys a model and deletes it from the database.
// fetching models
$ count = Person:: count (); // returns the number of models in the database.
$ person = Person:: first ();
$ person = Person:: last ();
$ person = Person:: one ([ ' first_name ' => ' John ' ]);
$ persons = Person:: all ([ ' last_name ' => ' Doe ' ], $ order , $ offset , $ limit );
$ person = Person:: find ( $ id ); // $id is the primary key of the model.
$ persons = Person::find( ' first_name ' , ' John ' , ' last_name ' , ' Doe ' . . .); // or
$ persons = Person:: find ([ ' first_name ' => ' John ' , ' last_name ' => ' Doe ' ]);
$ persons = Person:: findByFirstName ( ' John ' ); // fetches using an attribute, case will be changed to 'snake_case' automatically.
$ persons = Person:: where ( ' first_name ' , ' = ' , $ value ); // fetches using a where clause condition.
$ persons = Person:: where ( ' last_name ' , ' LIKE ' , ' %Doe ' , [[ ' AND ' , ' age ' , ' > ' , 27 ], ...], ' age DESC ' , $ limit , $ offset );
$ persons = Person:: fetch ( ' SELECT * FROM @table WHERE `first_name` = ? ' , [ $ value ]); // fetch using raw SQL query. <?php
namespace App Controller ;
use MAKS Velox Backend Controller ;
use App Model Person ;
class PersonsController extends Controller
{
public function indexAction ()
{
$ persons = Person:: all ();
return $ this -> view -> render ( ' persons/index ' , [
' title ' => ' Persons ' ,
' persons ' => $ persons
]);
}
// other CRUD actions ...
/**
* Persons search action.
*
* @route("/persons/search", {GET})
*/
public function searchAction ()
{
// ...
}
/**
* Persons middleware.
*
* @route("/persons/*", {GET, POST})
*/
public function personsMiddleware ()
{
// ...
}
} حقيقة: يتم تسجيل عمليات CRUD (وهي: index ، create ، store ، show ، edit ، update ، destroy ) بشكل افتراضي. لتسجيل مساراتك الخاصة تلقائيًا ، استخدم @route("<path>", {<http-verb>, ...}) . انظر Controller::registerRoutes() docblock لمعرفة المزيد.
حقيقة: لجعل النموذج متاحًا كخاصية لوحدة التحكم ( $this->model ) ، استخدم Controller::associateModel() . انظر Controller::associateModel() docblock لمعرفة المزيد.
نصيحة: إذا كانت في وضع الإنتاج ، كاختصار ، قم بإلقاء استثناء باستخدام رمز مطابقة {global.errorPages.CODE} ستقدم قيمة التكوين صفحة الخطأ المقابلة. على سبيل المثال ، عند إلقاء new Exception('Not found', 404) يشكل وحدة التحكم ، سيتم تقديم صفحة خطأ 404 المكونة وسيتم تمرير رسالة الاستثناء. إذا لم يتم تكوين الصفحة ، فسيتم تقديم صفحة الخطأ 500 كاحتباس احتياطي بدلاً من ذلك.
ليس لدى Velox أي طريقة للتحقق من صحة البيانات. تحقق من حزمة أخرى Mighty ، والتي سيفعل ذلك من أجلك وأكثر من ذلك.
{# theme/pages/persons/index.phtml #}
{! @extends 'theme/pages/persons/base' !}
{! @block content !}
{! @super !}
< h1 > {{ $title } } </ h1 >
{! @if ( isset ( $persons ) && count ( $persons ) ) !}
< ul >
{! @foreach ( $persons as $person ) !}
< li > {{ $person -> firsName } } {{ $person -> lastName } } </ li >
{! @endforeach !}
</ ul >
{! @endif !}
{! @endblock !} النصيحة: تحقق من نموذج Person و PersonsController لرؤية مثال واقعي.
يأتي Velox مع محرك templating الخاص به. يعد هذا المحرك البديهي للغاية ويسهل التواصل معه ، إذا كان لديك خبرة مع أي محرك آخر ، فإن تعلم أنه سيكون مسألة دقائق. لاحظ أن استخدام محرك templating هو اختياري. يمكنك ببساطة استخدام PHP الخام في وجهات نظرك.
يسرد الجدول التالي جميع العلامات المتاحة وماذا يفعلون:
| علامة | وصف |
|---|---|
{! @extends 'path/to/template' !} | تمديد قالب ، سيتم مورث كتل من هذا القالب. |
{! @include 'path/to/file' !} | قم بتضمين ملف ، وسيتم تقديم هذا قبل التضمين (لا يمكن الوصول إلى متغيرات السياق). |
{! @embed 'path/to/file' !} | تضمين ملف ، وسيتم تضمين هذا كما هو (يمكن الوصول إلى متغيرات السياق). |
{! @block name !}{! @endblock !} | إنشاء كتلة لالتفاف بعض التعليمات البرمجية. |
{! @super !} | استخدمه داخل كتلة في قالب موسع لتربير محتوى كتلة الأصل. |
{! @block(name) !} | طباعة كتلة. يجب استدعاء مرة واحدة على الأقل من أجل تقديم كتلة. |
{! @foreach ($vars as $var) !}{! @endforeach !} | هياكل التحكم (الحلقات ، إذا كانت البيانات ، ...). تتوفر جميع هياكل التحكم في PHP ( if ، else ، elseif ، do ، while ، for foreach ، continue ، switch ، break ، return ، require ، include ) مع نفس بناء الجملة ولكن ببساطة مسبقة برمز @ إذا كانت بنية التحكم هي الكلمة الأولى في العلامة. |
{! $var = '' !} | مهام متغيرة. يمكن أن يكون المحتوى متغيرًا أو أي تعبير PHP صالح. |
{{ $var }} | طباعة متغير. يمكن أن يكون المحتوى متغيرًا أو أي تعبير PHP يمكن إلقاؤه إلى سلسلة. |
{{{ $var }}} | طباعة متغير دون الهروب. يمكن أن يكون المحتوى متغيرًا أو أي تعبير PHP يمكن إلقاؤه إلى سلسلة. |
{# This is a comment #} | التعليق على شيء. سيكون هذا تعليق PHP (لن يكون متاحًا في HTML النهائي). |
النصيحة: ألقِ نظرة على آراء persons PersonsController في موضوع Velox للحصول على مثال واقعي.
بدءًا من v1.4.0 ، يتم شحن Velox مع نظام مصادقة بسيط. هذا النظام بسيط للغاية وسهل الاستخدام.
<?php
use MAKS Velox Backend Auth ;
// instantiate the Auth class
$ auth = new Auth (); // or Auth::instance();
// register a new user
$ status = $ auth -> register ( ' username ' , ' password ' );
// unregister a user
$ status = $ auth -> unregister ( ' username ' );
// log in a user
$ status = $ auth -> login ( ' username ' , ' password ' );
// log out a user
$ auth -> logout ();
// authenticate a user model
Auth:: authenticate ( $ user );
// check if there is a logged in user
$ status = Auth:: check ();
// retrieve the current authenticated user
$ user = Auth:: user ();
// add HTTP basic auth
Auth:: basic ([ ' username ' => ' password ' ]); نصيحة: تحقق من UsersController Controller لرؤية مثال واقعي.
Velox هو مشروع مفتوح المصدر مرخص بموجب ترخيص MIT .
حقوق الطبع والنشر (ج) 2021 مروان السولتاني. جميع الحقوق محفوظة.