مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

معرفی ماژول ها در فریمورک Yii


یک ماژول (module) یک موجودیتی است که دارای model ها، view ها، controller ها و شاید دارای ماژول های بالقوه دیگری می باشد. در واقع یک ماژول، یک اپلیکیشن در داخل اپلیکیشن دیگری است.

مرحله 1 - یک پوشه به نام modules در داخل ریشه پروژه یا پوشه ی اصلی پروژه ایجاد کنید. در داخل پوشه modules ، یک پوشه به نام hello ایجاد کنید. این پوشه اصلی برای ماژول Hello خواهد بود.

مرحله 2 - داخل پوشه hello، یک فایل PHP به نام Hello.php با کد زیر ایجاد کنید.

<?php

   namespace app\modules\hello;

   class Hello extends \yii\base\Module {

      public function init() {

         parent::init();

      }

   }

?>

اکنون ما یک کلاس ماژول ایجاد کرده ایم. این کلاس باید در مسیر اصلی ماژول قرار بگیرد. هر زمانی که بخواهیم به یک ماژول دسترسی پیدا کنیم ، یک شی مطابق کلاس module ایجاد می کنیم. از تابع init () برای مقداردهی اولیه property های ماژول استفاده می گردد.

مرحله 3 - حالا دو پوشه ی دیگر در داخل پوشه hello اضافه کنید به نام های : controllers و views.

 یک فایل  به نام CustomController.php را به پوشه controllers اضافه کنید.

<?php
   namespace app\modules\hello\controllers;
   use yii\web\Controller;
   class CustomController extends Controller {
      public function actionGreet() {
         return $this->render('greet');
      }
   }
?>

هنگام ایجاد یک ماژول، طبق یک قرارداد توصیه می شود که کلاس های controller را داخل پوشه ی controller’s موجود در مسیر اصلی ماژول قرار دهیم. ما در اینجا فقط فانکشن actionGreet را تعریف کرده ایم، که فقط یک view خوش آمدگویی یا greet را نمایش می دهد.

view ها در ماژول باید در پوشه views موجود در مسیر اصلی ماژول قرار گیرند. اگر view ها توسط یک controller اجرا یا render  شوند، باید آنها را در پوشه مربوط به controllerID قرار دهید. حال پوشه custom را به پوشه views اضافه کنید.

مرحله 4 - داخل پوشه custom، یک فایل با نام greet.php با کد زیر ایجاد کنید.

<h1>Hello world from custom module!</h1>

همانطور که در بالا دیدید، ما فقط یک view برای اکشن ActionGreet  ایجاد کردیم. برای استفاده از این ماژول جدید، ما باید اپلیکیشن را پیکربندی کنیم. ما باید ماژول خود را به ویژگی modules اپلیکیشن اضافه کنیم.

مرحله 5 - فایل config/web.php را ویرایش کنید.

<?php
   $params = require(__DIR__ . '/params.php');
   $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'components' => [
         'request' => [
            // !!! insert a secret key in the following (if it is empty) - this is
               //required by cookie validation
            'cookieValidationKey' => 'ymoaYrebZHa8gURuolioHGlK8fLXCKjO',
         ],
         'cache' => [
            'class' => 'yii\caching\FileCache',
         ],
         'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
         ],
         'errorHandler' => [
            'errorAction' => 'site/error',
         ],
         'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => true,
         ],
         'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
               [
                  'class' => 'yii\log\FileTarget',
                  'levels' => ['error', 'warning'],
               ],
            ],
         ],
         'db' => require(__DIR__ . '/db.php'),
      ],
      'modules' => [
         'hello' => [
            'class' => 'app\modules\hello\Hello', 
         ],
      ],
      'params' => $params,
   ];
   if (YII_ENV_DEV) {
      // configuration adjustments for 'dev' environment
      $config['bootstrap'][] = 'debug';
      $config['modules']['debug'] = [
         'class' => 'yii\debug\Module',
      ];
      $config['bootstrap'][] = 'gii';
      $config['modules']['gii'] = [
         'class' => 'yii\gii\Module',
      ];
   }
   return $config;
?>

مسیرِ (route) کنترلرِ ماژول، باید با شناسه ماژول (module ID) همراه با شناسه کنترلر (controller ID) و شناسه اکشن (action ID) آغاز شود.

مرحله 6 - برای اجرای ActionGreet در برنامه، ما باید از مسیر زیر استفاده کنیم.

hello/custom/greet

دراینجا hello یک شناسه ماژول (module ID) است، custom شناسه کنترلر (controller ID) است و greet یک شناسه اکشن (action ID) است.

مرحله 7 – حال در آدرسبار مرورگرتان http://localhost:8080/index.php?r=hello/custom/greet را تایپ کنید و آنچه که مشاهده خواهید نمود، همانند تصویر زیر خواهد بود.

نکات مهم

ماژول باید :

در برنامه های بزرگ استفاده شود. شما باید ویژگی های آن را به چند گروه تقسیم کنید. هر گروه از ویژگی ها را می توان به عنوان یک ماژول توسعه داد.

قابل استفاده مجدد باشد. بعضی از ویژگی های معمول، قابلیتِ استفاده ی مجدد دارند، مانند مدیریت SEO یا مدیریت وبلاگ، می توانند به عنوان ماژول توسعه یابند، به طوری که شما به راحتی می توانید آنها را در پروژه های آینده استفاده کنید.

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید