الإصدار 2.0.2-2024-12-13
إطار عمل بسيط لتطبيق الويب ينفذ النمط المعماري للسيطرة على عرض النموذج (MVC).
composer require "simplesamlphp/simplesamlphp:^2.2" )يدعم UMVC الوحدات النمطية ، انظر التكوين/المكونات.
يدعم الإطار الاختبار الوظيفي باستخدام البرنامج المساعد الإطاري. يجب أن يكون الترميز المثبت عالميًا متوافقًا مع المطلوب (حاليًا v3.1.2)
UMVC يدعم CLI. يمكنك إنشاء الأوامر الخاصة بك. الأوامر المدمجة هي:
قم بتشغيل الأوامر php app $command $action $parameters
يمكن تضمين الإطار في مشروعك مع الملحن. composer require uhi67/umvc:dev-master . يمكن إنشاء مشروع جديد فارغ باستخدام composer create-project --prefer-dist uhi67/umvc-app name . سيوفر لك هذا تطبيقًا فارغًا جديدًا باستخدام OMVC Framework في الدليل المسماة. اختر أي اسم تفضله.
تحذير: هذا الجزء قيد الإنشاء. تعرف على المزيد حول الفصول المذكورة في docblock من تعريف الفصل.
composer.json من التطبيق الخاص بك ، وتضمين uh67/umvc ، مثل composer init --name myname/myapp --require uhi67/umvc:* .composer update .vendor/uh67/umvc/app إلى جذر التطبيق الخاص بك. هذا هو قاذفة أوامر CLI.vendor/uh67/umvc/www/index.php و .htaccess إلى دليل www الخاص بك. هذا هو جهاز التوجيه لواجهة الويب.config/config.php ، راجع القالب في vendor/uh67/umvc/config/config-template.php .runtime يمكن كتابته بواسطة خادم الويب لوضع ملفات مؤقتة.www/assets الذي يمكن كتابته بواسطة خادم الويب لوضع ملفات الأصول المخزنة مؤقتًا من مكونات مختلفة. controllers ، باستخدام مساحة اسم appcontrollers ، واستخلصها من uhi67umvcController .views Dir ، بتنسيق PHTML بسيط ، وقم بتنظيمها وفقًا لفيلم views/controller/action.php .models . نماذج قاعدة البيانات هي uhi67umvcModel ، نماذج أقل من قاعدة البيانات هي uhi67umvcBaseModel . migrations .views/layouts . يمكن أن تسمي المشاهدات وجهات نظر جزئية أخرى.commands ، مستمدة من فئة uhi67umvcCommand . هناك بعض الأوامر المدمجة في الإطار. يسرد أوامر php app جميع الأوامر المتاحة ، سواء المدمجة والمخصصة.messges/la.php حيث "LA" هي اللغة التي تريد ترجمتها إلى. جميع المكونات ، معظم فئات UMVC ، بما في ذلك فئة التطبيق الرئيسية نفسها ، هي uhi67umvcComponent . يطبق Component ميزات الخاصية : يستخدم Magic Getter و Setter أساليب GetProperty و SetProperty. Component قابل للتكوين : يقبل مُنشئ صفيف تكوين يحتوي على قيم للخصائص العامة.
MySqlConnection - للاتصال بقاعدة البيانات. يتضمن SQL Builder Builder. حاليا التنفيذ الوحيد Connection .FileCache - التنفيذ الوحيد لـ CacheInterface .SamlAuth - التنفيذ الوحيد لـ AuthManager .L10n التوطين البسيط ، التلقائي التلقائي ، يترجم رسائل UMVC فقط.L10nFile التعريب القائم على الملف لترجمة رسائل التطبيق الخاص بك. Form عنصر واجهة مستخدم مع عرض مدمج لعرض نماذج HTML ومعالجتها باستخدام النماذج الخاصة بك.Grid (عنصر واجهة مستخدم ، ولكن العرض المدمج لا يزال مفقودًا)-لعرض قوائم النماذج المصفاة.Query - يمثل استعلام SQL معرضة ومرنة في بنية PHP. يمكن بناء أمر SQL منه.Request - يمثل طلب HTTP ، يمكن استخدامه لجلب المعلمات GET ونشرها.Session - تمثل جلسة PHP الحالية ، يمكن استخدامها للحصول على المتغيرات وضبطها. البرنامج النصي الإدخال الفردي لتطبيق الويب هو www/index.php . على التوالي ، البرنامج النصي المفرد لتطبيق CLI هو ملف app . يجب نسخ كلاهما في دليل التطبيق الخاص بك من vendor/uhi67/umvc/ الدليل.
تقوم قواعد www/.htaccess بإعادة توجيه جميع الطلبات غير المؤهلة إلى www/index.php . ومع ذلك ، يتم تقديم الأصول الثابتة مباشرة من دليل www. تعرف على المزيد حول خدمة أصول المكتبة لاحقًا.
يقوم index.php بتهيئة Autoloader ، وتحميل التكوين الرئيسي ، ويقوم بإنشاء الكائن الرئيسي (الفئة المحددة في التكوين ، وعادة ما تكون uhi67/umvc/App أو سليلها). يتبع التكوين الرئيسي قواعد Component القابل للتكوين.
تتم معالجة جميع عناوين URL التي تم تشكيلها على أنها https: // myapp/acontroller/anaction بالطريقة التالية:
uhi67/umvc/App يوسع الطلب ، ويحسب فئة وحدة التحكم الفعلية (المشتقة من uhi67/umvc/Controller ) لاستخدامها ، ويقوم بإنشاء وحدة التحكم وتشغيل طريقة الإجراء المطلوبة. كما هو الحال في المثال أعلاه ، يشير Acontroller إلى فئة وحدة التحكم الخاصة بك في دليل controllers الخاصة بك باعتباره acontrollerController ، ويشير Anaction إلى طريقة الإجراء (كـ ActionAnaction ).
إذا كان اسم الإجراء مفقودًا من عنوان URL ، فسيتم تشغيل actionDefault . إذا كان اسم وحدة التحكم مفقودًا أيضًا ، فسيتم استخدام MainController المكونة. من الممكن أيضًا إنشاء عنوان URL مع اسم إجراء وحدة التحكم الافتراضية دون تحديد اسم وحدة التحكم - التقييد الوحيد الذي لا يمكن أن يكون لديك وحدة تحكم تحمل نفس الاسم مثل هذا الإجراء.
يتم معالجة أمر AL CLI على أنه php app acontroller/anaction بالطريقة التالية:
uhi67/umvc/App يوسع الطلب ، ويحسب فئة وحدة التحكم الفعلية (المشتقة من uhi67/umvc/Command ) لاستخدامها ، وتنشئ وحدة التحكم وتشغيل طريقة الإجراء المطلوبة. كما هو الحال في المثال أعلاه ، يشير Acontroller إلى فئة وحدة التحكم الخاصة بك في دليل commands الخاصة بك على أنه AcontrollerController ، ويشير Anaction إلى طريقة الإجراء (كـ ActionAnaction ). يمكن تشغيل الأوامر المدمجة بنفس الطريقة. إن الأمر الذي يحمل نفس الاسم في تطبيقنا يتجاوز الأمر المدمج.
يمكن الوصول إلى أجزاء طلب عنوان URL الحالي على النحو التالي:
لإنشاء عنوان URL جديد باستخدام وحدة التحكم وأسماء الإجراءات ، ومعلمات OptioAnl Qurey ، استخدم واحدة مما يلي:
في ملفات العرض الخاصة بك ، يمكنك إحالة أصولك الثابتة الموجودة تحت دليل www بطريقة ثابتة ، على سبيل المثال <link href="/assets/css/app.css" rel="stylesheet"> . على العكس من ذلك ، إذا كنت تريد الرجوع إلى ملف الأصول الموجود في مكان ما في مكتبة البائعين التي أنشأها الملحن ، فيمكنك استخدامها بهذه الطريقة:
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> تقوم دالة linkAssetFile بنسخ جميع الملفات من الدليل في الوسيطة الأولى في دليل ذاكرة التخزين المؤقت للأصول تحت www ، وإنشاء عنوان URL صالح للملف int الوسيطة الثانية. ملاحظة: معرف الوسيطة الأولى حزمة الأصول. فقط المكالمة الأولى لأي حزمة تقوم بنسخ الملفات. جميع المكالمات اللاحقة إلى نفس الحزمة تنشئ الرابط للملف فقط.
يتم إفراغ ذاكرة التخزين المؤقت للأصول بواسطة أمر composer install . ذاكرة التخزين المؤقت للأصول هي دائمًا www/asset/cache ولا يمكن تكوينها.
...
يحتوي هذا المستودع على تطبيق اختبار مدمج لاختبارات وحدة الترميز الداخلية. الغرض الوحيد من تطبيق الاختبار في دليل tests هو أن تكون قادرًا على إجراء اختبارات الوحدة ، وليس تطبيق عينة للبدء به.
git clonecomposer updatetests/_data/test-config.php بناءً على القالبumvc-test وفقًا لإعدادات قاعدة البيانات في tests/_data/test-config.phpphp vendor/bin/codecept run unit لاختبارات الوحدةالمزيد من اختبارات الوحدة قادمة ...
يمكن استخدام بيئة اختبار مضمّنة مقيدة للاختبار باستخدام إصدارات مختلفة من PHP وقاعدة البيانات.
خطوات:
tests/docker-compose.yml (اصنع استنساخًا من ملف القالب)tests/docker/Dockerfile (قد تتغير خطوات تثبيت الامتداد)tests/.envdocker compose up --build -d (في tests DIR)docker exec -it umvc-php-1 php vendor/bin/codecept run unit