سلام دوستان من از MVC استفاده میکنم. مشکل اینجاست که تو هر صفحه ای که میخوام یه تابع استفاده بشه مجبورم اون تابع رو تو هر صفحه کنترلر بنویسم. میخواستم بدونم چاره ای هست که نخوام هی اونو تو هر صفحه کپی پیست کنم
رتبه موضوع:
استفاده از یک تابع در کل صفحات MVC
|
کافیه تو صفحه ایندکس این کلاس رو include کنید و هرجا که خواستید با خیال راحت ازش بصورت زیر استفاده کنید.
class Container { private $methods = []; public function register($name, Closure $closure) { $this->methods[$name] = $closure->bindTo($this, get_class()); } public function __call($name, array $args) { if (isset($this->methods[$name])) { return call_user_func_array($this->methods[$name], $args); } throw new BadFunctionCallException("'$name' does not exist."); } } $Container=new Container; $Container->register('user', function() use ($Container) { return "bgsrb88"; }); $Container->register('Send', function($message) use ($Container) { return $message." ".$Container->user(); }); echo $Container->Send("Salam"); یادگیری مداوم حداقل شرط لازم برای موفقیت در هر زمینه ای است که در آن فعالیت می کنید؛ هر روز چیز جدیدی بیاموزید.
تشکر شده توسط: golshan , __undercover
همانطور که اشاره شد یک کلاس تعریف کنید و تابع مورد نظرتونو داخلش تعریف کنید و برای استفاده ار آن راه بهتر اینه که از autoloader استفاده کنید تا نیاز به require کردن کلاس هم نداشته باشید. مثلا این دستوراتو توی index قرار بدهید. توی این مثال فرض شده کلاس ها داخل پوشه classes تعریف شدند :
spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php'; }); موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است. تشکر شده توسط: golshan
|
|
کاربران در حال بازدید این موضوع: 1 مهمان