سؤال

أنا أعمل على ترقية مشروعي من CakePhP 1.2 إلى 1.3. في هذه العملية ، يبدو أن التوجيه "السحري" للمكونات الإضافية التي يحمل بها اسم وحدة تحكم (على سبيل المثال: "ForumsController") مطابقة اسم المكون الإضافي (على سبيل المثال: "المنتديات") تلقائيًا إلى جذر عنوان URL المكون الإضافي (على سبيل المثال : "www.example.com/forums" الإشارة إلى "منتديات" ، Controller "Forums" ، Action "Index").

رسالة الخطأ المقدمة هي كما يلي:

Error: ForumsController could not be found.

Error: Create the class ForumsController below in file: app/controllers/forums_controller.php

<?php
class ForumsController extends AppController {
    var $name = 'Forums';
}
?>

في الواقع ، حتى لو قمت بالتنقل إلى "www.example.com/forums/forums" أو "www.example.com/forums/forums/index" ، أحصل على نفس الخطأ الدقيق.

هل أحتاج إلى إعداد الطرق بشكل صريح على كل مكون إضافي أستخدمه؟ يبدو أن هذا يدمر الكثير من السحر الذي أحبه في CakePhP. لقد وجدت فقط أن القيام بالأعمال التالية:

Router::connect('/forums/:action/*', array('plugin' => 'forums', 'controller' => 'forums'));
Router::connect('/forums', array('plugin' => 'forums', 'controller' => 'forums', 'action' => 'index'));

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

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

المحلول

أعتقد ، هذا الموضوع التكوين والتطبيق-bootstrapping يغطي ذلك:

App::build(array(
    'plugins' => array('/full/path/to/plugins/', '/next/full/path/to/plugins/')
));

ألقِ نظرة أيضًا على هذه التذكرة: http://cakephp.lighthouseapp.com/projects/42648/tickets/750-plugin-reoute-problem-when-acl-and-auth-components-used#ticket-750-5 (Cake 1.3 قد أزال طرق البرنامج المساعد السحري).

نصائح أخرى

ليس لديك myplugin_app_controller.php في دليل/app/plugins/myplugin.

فقط قم بإنشاء ملف يحتوي على ما يلي:

<?php
class MypluginAppController extends AppController {

}
?>

وسيكون لديك جميع ميزات البرنامج المساعد. قون

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