رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از یک تابع در کل صفحات MVC
#1
سلام دوستان من از MVC استفاده میکنم. مشکل اینجاست که تو هر صفحه ای که میخوام یه تابع استفاده بشه مجبورم اون تابع رو تو هر صفحه کنترلر بنویسم. میخواستم بدونم چاره ای هست که نخوام هی اونو تو هر صفحه کپی پیست کنم
پاسخ
تشکر شده توسط:
#2
کافیه تو صفحه ایندکس این کلاس رو 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
#3
همانطور که اشاره شد یک کلاس تعریف کنید و تابع مورد نظرتونو داخلش تعریف کنید و برای استفاده ار آن راه بهتر اینه که از autoloader استفاده کنید تا نیاز به require کردن کلاس هم نداشته باشید. مثلا این دستوراتو توی index قرار بدهید. توی این مثال فرض شده کلاس ها داخل پوشه classes تعریف شدند :
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط: golshan




کاربران در حال بازدید این موضوع: 1 مهمان