منبع اصلی نوشتار زیر در این لینک قرار دارد

یادگیری فریمورک Yii-بخش ۸

در آغاز سخن، از همه دوستان به خاطر تأخیر پوزش می خواهم، مطالب دیر به دیر آماده می شود. در بخش هفتم این مجموعه سری آموزشی با برخی از موضوعات و مفاهیم آغازین یک برنامه از قبیل روند شروع برنامه، مفهوم خود برنامه، تنظیمات اولیه یا پیش فرض برنامه و ویژگی های مسیر برنامه در این فریمورک به طور اجمالی آشنا شدیم.

در ادامه مطالب قبلی، قصد داریم تا مفاهیم کامپوننت های برنامه و هسته و چرخه حیات یک برنامه تولیدی با این فریمورک را بیان کنیم.

مؤلفه های برنامه

عملکرد خود شئ برنامه می‌تواند به سادگی تغییر کند و با بهره گیری از معماری منعطف مؤلفه ها یا همان کامپوننت ها آن را غنی تر کرد. این شئ یک مجموعه از مؤلفه های برنامه اصلی را که هرکدام یک ویژگی و کارایی خاصی از آن را ارائه می کند، مدیریت می‌کند. برای مثال، شئ برنامه، پردازش های اولیه مربوط به درخواست کاربر نهایی را به کمک مؤلفه های CurlManager و ChttpRequest انجام می‌دهد.
با پیکربندی خصیصه components شئ برنامه، می‌توانیم مقادیر خصیصه ها و کلاس هر مؤلفه ای که در برنامه استفاده شده است را تغییر داد. برای مثال، برای استفاده از چندین سرور memcache برای کش کردن، می‌توانیم مؤلفه CmemCach را  به صورت زیر تنظیم کنیم:

array(
    'components' => array(
        'cache' => array(
            'class' => 'CMemCache',
            'servers' => array(
                array('host' => 'server1', 'port' => 11211, 'weight' => 60),
                array('host' => 'server2', 'port' => 11211, 'weight' => 40),
            ),
        ),
    ),
        )

در بالا، المان کش را به آرایه مؤلفه ها اضافه کردیم. وضعیت المان کش که یک کلاس از CmemCache است و خصیصه سرورهای آن باید همانند بالا مقدار دهی شوند.
برای دسترسی به یک مؤلفه برنامه، از روش Yii::app()->ComponentID استفاده کنید، که ComponentID به شناسه مؤلفه اشاره دارد (مثل Yii::app()->cache).
یک مؤلفه برنامه ممکن است، با مقدار دهی false به خصیصه enabled در تنظیماتش غیرفعال شده باشد. در این صورت، هنگام دسترسی به آن مقدار Null برگردانده می‌شود.

نکته: به طور پیش فرض، مؤلفه های برنامه به هنگام درخواست آن‌ها ایجاد می‌شوند. این به این معنی است که اگر در طول اجرای برنامه درخواستی از کاربر نهایی برای دسترسی به آن مؤلفه ارسال نشود، آن مؤلفه ممکن است که هیچ‌گاه ایجاد نشود. در نتیجه، کارایی کلی برنامه کاسته نمی‌شود، حتی اگر برنامه با مؤلفه های زیادی پیکربندی شده باشد. برخی مؤلفه های برنامه (مثل ClogRouter) ممکن است ایجاد شدنشان ضروری باشد حتی با وجود اینکه آیا به آن‌ه،ا دسترسی لازم باشد یا خیر. برای انجام آن، شناسه های مربوط به آن‌ها را در خصیصه preload تنظیمات برنامه تنظیم کنید.

مؤلفه های هسته برنامه

Yii ویژگی‌هایی را برای برنامه‌های تحت وب ارائه نموده و برای این منظور یک مجموعه از مؤلفه های هسته برنامه را از پیش تعریف کرده. برای مثال، مؤلفه request برای جمع آوری اطلاعات مربوط به درخواست کاربر و تأمین اطلاعاتی از قبیل URL درخواست شده و کوکی ها استفاده می‌شود. در تنظیمات خصیصه های مؤلفه های هسته برنامه، می‌توانیم رفتار پیش‌فرض هر کدام را تغییر دهیم.
در اینجا فهرستی از مؤلفه های هسته برنامه که از قبل توسط CwebApplication تعریف شده اند:

  • CassetManager : وظیفه مدیریت و انتشار فایلهای نهایی محافظت شده برنامه.
  • CauthManager : مدیریت کنترل های دسترسی نقش پایه (RBAC).
  • Ccache : عمل کش کردن داده‌ را دارد. قابل ذکر است که برای این کار لازم است تا کلاس مورد نظر را تعریف کنید (مثل CmemCache، CdbCache). وگرنه، هنگام دسترسی به این مؤلفه مقدار null برگردانده می‌شود.
  • CclientScript : مدیریت اسکریپت های سمت کاربر (جاوااسکریپت و CSS)ها را به عهده دارد.
  • CphpMessageSource : هسته ترجمه پیامها که بوسیله فریمورک استفاده می‌شوند را بر عهده دارد.
  • CdbConnection : برقراری ارتباط با دیتابیس را بر عهده دارد. قابل اشاره است که برای استفاده از این مؤلفه لازم است تا connectionString آن را تنظیم نماییم.
  • CerrorHandler : مدیریت خطاهای PHP و استثناها را بر عهده دارد.
  • Cformat : مقادیر داده‌های را برای نمایش قالب بندی می کند.
  • ChttpRequest : اطلاعات مربوط به درخواست کاربر نهایی را نگهداری می‌کند.
  • CsecurityManager : خدمات امنیتی مرتبط از قبیل هش کردن و رمزنگاری را ارائه می کند.
  • ChttpSession : عمل‌کرد مرتبط با session را مدیریت می‌کند.
  • CstatePersister : تأمین مکانیزمی برای نگهداری وضعیت کلی برنامه.
  • CurlManager : وظیفه ترجمه و ایجادURL را بر عهده دارد.
  • CwebUser : اطلاعات شناسه مرتبط با کاربر جاری (درحال استفاده از برنامه) را نگهداری می‌کند.
  • CthemeManager : مدیریت تم ها را بر عهده دارد.

چرخه حیات برنامه

زمانی که یک درخواست از سمت کاربر ارسال می شود، چرخه حیات یک برنامه به ترتیب زیر آغاز می‌شود:

  1. انجام مقدار دهی های اولیه توسط Capplication::preinit();
  2. تنظیم کلاس aoutoloader و مدیریت خطا ها.
  3. ثبت مؤلفه های هسته برنامه.
  4. بارگذاری و انجام پیکربندی برنامه.
  5. مقدار دهی اولیه برنامه توسط Capplication::init()
    • ثبت رفتارهای (behaviors) برنامه.
    • بارگذاری مؤلفه های ایستای برنامه.
  6. اجرا نمودن رویداد onBeginRequest.
  7. پردازش درخواست ارسالی کاربر:
    • جمع آوری اطلاعات پیرامون درخواست.
    • ایجاد کنترلر مربوطه.
    • اجرای کنترلر.
  8. اجرای رویداد onEndRequest.

خوب امیدوارم که تا اینجا مطالب مفید بوده باشند. حتما ادامه مطالب آموزشی را دنبال نمایید.
در ضمن از نظرات و بیان اشکالات و سوالات در قسمت نظرات فراموش نکنید.

The post یادگیری فریمورک Yii-بخش ۸ appeared first on دست نوشته های یک تازه کار.



برچسب ها : , , , , , , , ,