كيفية ترتيب منطق الأعمال في مشروع كوهانا 3

StackOverflow https://stackoverflow.com/questions/2443909

  •  20-09-2019
  •  | 
  •  

سؤال

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

أنا أستمر بشكل جيد إلى حد ما لكنني أرغب في إعداد مشروع ويب عالمي حقيقي (واحد من بلدي أنني كنت أخطط لبعض الوقت الآن الآن) ككائن تعليمي.

أتعلم أفضل ذلك بموجب مثال، لكن الوثائق القائمة على سبيل المثال متناثر قليلا بالنسبة لكوهانا 3 الآن - يقولون أنفسهم على الموقع. على الرغم من أنني لست قلقا بشأن تعلم الإطار الذي أذهب إليه، فأنا أريد التأكد من أن قاعدة التعليمات البرمجية هي منظم صحي من البداية - يتم تقسيم وحدات تحكم IE بشكل جيد، والتي تسمى جيدا وفقا للمعايير والأهم منطق الأعمال مفصولة في نماذج بحجم مناسب.

يمكن وصف طلبي، في جوهرها، على أنه دليل تجاري بمجموعة من وظائف البحث والإدراج، ومنطقة تسجيل الدخول لكل مالك الإدخال. تعتني بالفعل قاعدة البيانات الإدارية الفعلية بالفعل.

وفترض أن لدي كل واجهة برمجة تطبيقات API وفي مكانها بالفعل - سرد جميع الشركات، وتحرير الأعمال، وقائمة الأعمال التجارية حسب اسم الشارع، وإنشاء عرض تسجيل الدخول كشركة تجارية، وما إلى ذلك، وأنا فقط أبحث عن كيفية تناسب الوظيفة إلى نمط MVC وفي هيكل تطبيق Kohana يمكن تمديده بسهولة.

  • هل تعرف أمثلة واقعية على تطبيقات "قاعدة بيانات الثقيلة" مثل الدلائل والمجتمعات عبر الإنترنت ... مع منطقة تسجيل الدخول التي تم إنشاؤها على Kohana 3، ويفضل المصدر المفتوح حتى أتمكن من أخذ نظرة خاطفة كيف يفعلون ذلك؟

  • هل هناك اتفاقيات أو أفضل الممارسات حول كيفية بناء منطقة تسجيل دخول قابلة للتمديد للمستخدمين النهائيين في مشروع Kohana غير قادر فقط على التعامل مع صفحة دليل الأعمال، ولكن المزيد من المنتجات على صفحات منفصلة أيضا؟

  • هل تعرف أي موارد جيدة على بناء تطبيقات معقدة مع كوهانا؟

  • هل بنيت شيئا مشابها ويمكن أن تعطيني توصيات بشأن هيكل المشروع؟

باون

لقد منحني مكافأة ToTPaw لأنه قدم لي بتطبيق كوهانا مع بعض المنطق التجاري الذي يعطيني الكثير من الأمثلة. هتافات Pixel Developer لمدخلاتك الممتازة أيضا - كما في كثير من الأحيان، أتمنى أن يقوم المرء بتقسيم مكافأة!

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

المحلول

أود استخدام وحدة المصادقة التي تأتي مع Kohana لتسجيل الدخول. سيعطيك هذا جدول الأدوار حيث يمكنك إعداد خيارات الإذن المحتملة ومتابعة لهم للمستخدمين لاحقا. بعد ذلك يمكنك التحقق من داخل __constressor () أو Action_Function () من كل وحدة تحكم سواء كان المستخدم دور مطلوبا على سبيل المثال مع وظيفة -> لديه (). يجب عليك أيضا استخدام وحدة Orm، وهي رائعة فقط، لأن لديك العديد من العلاقات بين الطاولات. أيضا الأسلوب __get () داخل كائن orm يمكن أن يكون مفيدا للغاية.

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

public funciton action_manage($id = NULL)
{
    $entry = ORM::factory('entry', $id); // if id is null a new entry will be returned 
}

من المهم أيضا أن تقوم بتنقل وجهات النظر إلى مجلدات فرعية لتجنب دليل عرض فوضوي.

نصائح أخرى

الكثير من الأسئلة للإجابة هنا، سأبذل قصارى جهدي.

هل تعرف أمثلة واقعية على تطبيقات "ثقيلة قاعدة البيانات" مثل الدلائل والمجتمعات عبر الإنترنت ... مع منطقة تسجيل الدخول التي تم إنشاؤها على Kohana 3 حيث يمكنني أخذ نظرة خاطفة كيف يفعلون ذلك؟

هناك عدد قليل من التطبيقات هناك. نشر Woody Gilk (مؤسس Kohana) الكود إلى موقعه الشخصي على جيثب. وبعد لمنطقة تسجيل الدخول، يعين قيمة ملف تعريف الارتباط. وقع Kohana 3 / 2.4 على ملفات تعريف الارتباط التي تجعلها آمنة وتزيل شرط الجلسات. قد لا يكون هذا ما يصل إلى أذواق الجميع حتى تتمكن دائما من استخدام مكتبة المصادقة المدمجة التي تستخدم كلتا الجلسات وملفات تعريف الارتباط.

فيما يلي بعض المشاريع الأخرى التي قد تكون مهتما بها:

هل هناك اتفاقيات أو أفضل الممارسات حول كيفية بناء منطقة تسجيل دخول قابلة للتمديد للمستخدمين النهائيين في مشروع Kohana غير قادر فقط على التعامل مع صفحة دليل الأعمال، ولكن المزيد من المنتجات على صفحات منفصلة أيضا؟

إذا فهمت لك بشكل صحيح، فأنت ترغب في إنشاء مربع تسجيل دخول لكل تلك الصفحات؟ هذا سهل مع Kohana 3 كما يمكننا الاستفادة من حاء في HMVC. كتب Sam de Fressyinet مقالة تفصيل ما يدور حول هذا على مدونة IBUINDING TECH. تحجيم تطبيقات الويب مع HMVC.

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

$login = Request::factory('login')->execute()->response;

$ تسجيل الدخول الآن يحتوي على نموذج تسجيل الدخول، والذي يمكنك وضعه في أي مكان تريده. قد ترغب في إرجاع استجابة مختلفة إذا كان الطلب داخليا وهذا هو السبب في أن هذه القطعة يمكن أن تكون مفيدة:

if (Request::instance() !== $this->request)
{
    print 'Internal called made with Request::factory';
}

هل تعرف أي موارد جيدة على بناء تطبيقات معقدة مع كوهانا؟

لن يكون هناك وثائق توضح لك كيفية بناء تطبيقات معقدة. رأي مجتمع كوهانا هو أنك مطور PHP ويجب أن تكون قادرة على حل هذه المشاكل لنفسك. إذا كنت لا تستطيع، حسنا، يجب أن لا تستخدم Kohana إذن.

هل بنيت شيئا مشابها ويمكن أن تعطيني توصيات بشأن هيكل المشروع؟

بمجرد أن تفهم كيف تجد Kohana 3 ملفات من السهل فهم الأشياء.

|- classes
|-- controller
|-- model
|- views

علي سبيل المثال:

Controller_Mathew extends Controller 

سوف ابحث عن ملف يسمى mathew.php في:

classes/controller

يمكن استخدام السفلات على تحديد الدلائل العميقة. مثال:

Controller_Mathew_Davies extends Controller

سوف ابحث عن ملف يسمى davies.php في:

classes/controller/mathew/

كما ترون، فإن السفلات السفلية في اسم وحدة التحكم بمثابة فواصل الدليل. هذا الحلقات حقيقية بالنسبة للنماذج وفصول الفانيليا.

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