لقد استضافت التطبيق على Heroku وأنا أستخدم التكامل المستمر لشحن التغييرات تلقائيًا وعلى الفور (المزيد حول هذا لاحقًا). يمكنك زيارة التطبيق باستخدام الرابط التالي:
http://simple-todo-rs.herokuapp.com/
على الواجهة الخلفية ، قمت ببناء الأشياء التالية:
تم تصميم التطبيق باستخدام طريقة موجهة بالكامل للكائنات ولديها دعم قوي قد يكتشف الفواصل أثناء مرحلة التطوير وبالتالي زيادة السرعة.
لاختبار الوحدة أنا أستخدم phpunit. رغم ذلك ، لقد بدأت بالفعل في كتابة الاختبارات والاستمرار ، ولكن لا يزال الأمر يستغرق وقتًا ما لتغطية قاعدة الشفرة بأكملها.
حول التعليقات ، نظرًا لأن التطبيق يغطي الكثير من الميزات ، فقد حاولت كتابة الرمز بشكل عام ، بحيث لا يحتاج المرء إلى تعليقات لفهم الرمز (لإدارة وقت Dev). ولكن ما زال التعليق هو حقيقة واقعة للوثيقة. سأحاول أخذ قاعدة الكود بأكملها تحت التعليقات مع مرور الوقت.
[ملاحظة: يعمل التطبيق على اختبار تلقائي على كل دفعة ، ولكنه ينشر فقط إلى Heroku إذا نجح الاختبار].
لقاعدة البيانات لقد استخدمت postgreSQL. ولتعامل مع عمليات قاعدة البيانات ، استخدمت PHP PDO لإدراج Perfom ، حذف ، تحديث وما إلى ذلك.
كملاحظة جانبية ، تم استخدام Composer التبعية.
إذا كنت ترغب في تشغيل هذا التطبيق محليًا لاستخدامك أو تطويره ، فيمكنك القيام بذلك بسهولة. تأكد من تثبيت PHP و Composer و PostgreSQL المثبت على جهاز الكمبيوتر الخاص بك واتصال الإنترنت.
في أول ملحن التشغيل لتثبيت التبعيات:
$ php composer.phar install الآن ، قم بإنشاء .env في دليل جذر المشروع ووضع معلومات DB الخاصة بك هناك على النحو التالي:
DATABASE_URL=postgres:// < username > : < password > @ < hostname > : < port > / < dbname >قد ترغب أيضًا في وضع معلومات أخرى في ملف .env الخاص بك (افعل حسب حاجتك)
ثم الركض:
$ php database/migrate.phpبعد إنشاء جدول DB ، يمكنك إجراء الاختبارات:
$ ./vendor/bin/phpunitإذا نجحت الاختبارات ، فيمكنك تشغيل التطبيق باستخدام خادم ويب تطوير PHP على النحو التالي:
$ php -c < path-to-php.ini > -t public/ -S 127.0.0.1:8000 تفضل الآن بزيارة 127.0.0.1:8000 على متصفحك لاستخدام WebApp.
لقد استخدمت phpunit لاختبار الوحدة ونصي تم تحريره قليلاً (وفقًا لحاجتي) من DevCoder-xyz/php-dotenv إلى ملف .env .
يتم نشر هذا المستودع بموجب MIT License . لمعرفة المزيد عن الترخيص ، يرجى زيارة هذا الرابط.
أفكر في شرح الهندسة المعمارية بالكامل لهذا المشروع لكل من مهتم بتطوير WebApp. أفكر في التخطيط لكتاب (أو نوع من الموارد التعليمية) حول كيفية إنشاء تطبيق ويب من نقطة الصفر. إذا كان لديك أي شيء للمساهمة أو تقديم المشورة ، فأنا كل آذان. فقط أعطني ضربة.