سؤال

قمت بتشغيل مواقع مواقع متعددة تعمل جميعها على تثبيت واحد من Codeigniter على الخادم الخاص بي (أدلة تطبيق منفصلة ودليل النظام واحد). هذا يعمل بشكل رائع ولا أرى أي سبب لتغييره في هذه المرحلة.

أجد نفسي أكتب دروس المكتبة لتمديد / تجاوز CI طوال الوقت والعديد من المرات إذا وجدت علة أو تحسين الكفاءة، يجب أن أعود إلى العديد من مواقع الويب لجعل نفس التعديلات المعرضة لخطر الخطأ المطبعي الذي يكسر أحد المواقع الإلكترونية وبعد بسبب هذا الأمر، فهذا يتطلب تغيير كل ملف ثم اختبار هذا الموقع للبق.

لقد كنت أفكر في حل لاستخدام دليل مكتبات واحدة في موقع مركزي واستنباط جميع مواقع الويب الخاصة بي على هذا الدليل المركزي. ثم عندما أقوم بإجراء تغيير ملف، فسوف ينتشر على الفور إلى جميع المواقع المصب. ما زلت بحاجة إلى اختبار كل واحد للحصول على أخطاء، لكنني لن أضطر إلى إجراء التغييرات المتعددة. سيكون أي شيء محدد بموقع واحد إما ملفا غير مشترك (لا يزال في الدليل المرتبط فقط غير مستخدم آخر) أو يمكن وضعه في مساعد محلي.

أيضا، أظل أدلة "نظام" منفصلة عن طريق نسخة CI حتى أتمكن من ترحيل مواقع الويب الخاصة بي بشكل مستقل إذا لزم الأمر - سيتم إرفاق ملف المكتبات المركزي هذا بإصدار محدد لتقليل فترات الراحة المحتملة.

هل يرى أي شخص مشكلات محتملة أو مزال من اتخاذ هذا النهج؟ هل أنجز أي شخص هذا في اتجاه آخر يجب أن أفكر فيه؟

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

أعتقد أن هذا منطقي فعلا:] الذهاب لذلك. حتى في صفحة Codeigniter الرسمية، يذكرون أنه ممكن.

أيضا، لا أرى أحد الأسباب التي يجب أن تكون هناك أي مشكلة.

تحرير: يلمسون مشكلة مواقع متعددة هنا: http://codeigniter.com/user_guide/general/managing_apps.html

ايضا:

http://codeigniter.com/wiki/multiple_applications/
http://www.exclusivetutorials.com/setting-multiple-websites-in-codeigniter-installation/
كيفية التعامل مع مشاريع متعددة في Codeigniter؟
http://codeigniter.com/forums/viewthread/56436/

نصائح أخرى

لدي دليل نظام واحد ودليل تطبيق منفصل لتطبيقات CI الخاصة بي. من أجل مشاركة المكتبات وبعض قوالب العرض بين تطبيقاتي، قمت بإنشاء دليل "مشترك"، في نفس المجلد كنظام CI ومع نفس الهيكل كمجلد تطبيق منتظم واستخدامه فئة بحيث تبدو في المجلد المشترك أيضا. يبدو إعدادي شيئا مثل هذا:

/var/CodeIgniter/
/var/Common/
/var/Common/config/
/var/Common/controllers/
...
/var/Common/libraries/
...
/var/www/someapp/
/var/www/someotherapp/
...

لست متأكدا من كيفية التعامل مع نشر مواقعك (على افتراض أنك تقوم فعليا بأي من ذلك)، لكنني أنظر إلى التحكم في الإصدار. على سبيل المثال، في SVN، يمكنك إجراء إضاءة خارجية إلى دليل SVN آخر (أو ملف) ثم قم فقط بتحديث دليل SVN الحالي الذي يمسك بالملف الخارجي. يكسب هذا النهج استفادة واحدة من الآخرين، وهو عندما تقوم بتعديل المكتبة المشتركة، والبعض الآخر لا يتأثر على الفور. هذا يمنع النفايات غير المرغوب فيها قبل أن يكون لديك وقت للذهاب إلى اختبار جميع المواقع باستخدام المكتبة الشائعة. يمكنك بعد ذلك تحديث مجلد كل موقع كلما جاهزا لاختبار التغييرات. هذا هو "المزيد من العمل"، لكنه يمنع ازدواجية التعليمات البرمجية والكسر غير المرغوب فيه.

كتبت my_loader للقيام بذلك بالضبط.

http://ellislab.com/forums/viewthread/136321/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top