CakePhP: تقييد طريقة وحدة التحكم إلى الصدفة فقط؟
-
25-09-2019 - |
سؤال
في الكثير من تطبيقات الكعك الخاصة بي ، لديّ قذائف يتم استدعاؤها عبر Cron و Cake Console ، وأتساءل عما إذا كان بإمكاني تقييد هذه الأساليب بطريقة "خاصة" حتى لا يمكن الاحتجاج بها إلا بواسطة وحدة التحكم؟ على سبيل المثال ، دعنا نقول أن لدي هذا في قشرتي:
$this->requestAction(array('controller' => 'reviews', 'action' => 'generateReports'));
كيف يمكنني تقييد إجراء "generatereports" ليكون طريقة "قذيفة فقط"؟ لأنني أستطيع أيضًا استدعاء الطريقة في متصفحي بالذهاب إلى:http://site.url/reviews/generateReports
وبغض النظر عن ذلك ، فقد يكون هذا الأمر خطيرًا في بيئة الإنتاج.
إذا جعلت هذه الطريقة خاصة ، أي _generatereports ، فلن يُسمح للقذيفة بتنفيذها. أيه أفكار؟ أشعر أنه يجب أن يكون هناك حل سهل لهذا ، لكنني لم أتمكن من العثور على سؤال أو سؤال مشابه. شكرًا!
المحلول
إذا تم تنفيذ الإجراء الخاص بك فقط بواسطة الخادم ، فلماذا بناء الإجراء داخل وحدة تحكم يمكن الوصول إليها على الويب؟
إذا كنت ترغب في تشغيل CakeHell فقط هذه الطريقة ، فيجب إنشاء الإجراء فقط كماسكال كاكيت.