سیمفونی Flex، نام مستعار و توویگ (twig) | بخش چهارم

سیمفونی Flex، نام مستعار و توویگ (twig) | بخش چهارم
سیمفونی Flex، نام مستعار و توویگ (twig) | بخش چهارم


خب در ادامه قسمت‌های قبلی در این قسمت با جزئیات بیشتری در مورد فریمورک سیمفونی آشنا میشیم، در این قسمت می‌فهمیم که سیمونی flex چی هست و کارش چیه، چطوری یک بسته با نام مستعار(Alias) درست کنیم و در انتها هم قاره بریم و توویگ رو وارد پروژه کنیم.


نصب بسته جدید در پروژه

برای شروع بیاییم و یک بسته جدید بر روی پروژه نصب کنیم، برای این کار در دایرکتوری پروژه دستور زیر رو وارد می‌کنیم.

composer require sec-checker --dev

بهتر هست که در انتهای دستور --dev رو اضافه کنیم چون بسته بالا فقط در زمان توسعه پروژه استفاده میشه.

حواستون باش: طبق تجربه‌ای که من تو پروژه‌های مختلف داشتم موقع نصب بسته‌ها از خودتون این سوال رو بپرسید که؛ آیا این بسته رو من در زمانی غیر از توسعه هم نیاز دارم؟؛ بعد اگر فقط در زمان توسعه نیاز دارید --dev رو هم به انتهای دستور اضافه کنید تا از لحاظ پردازشی مشکلاتتون کمتر باشه.

خب الان از خودتون میپرسید که این نصب بسته چه ربطی به سیمفونی داشت؟ اینو که با composer نصب کردیم! دقیقا نکته همینجاست! زمانی که شما درخواست نصب sec-checker رو ارسال می‌کنید، این اسم یک اسم بسته معتبر نیست، خب در این حالت چه اتفاقی میوفته؟! برای این که بیشتر دستتون بیاد پیشنهاد می‌کنم فایل composer.json رو باز کنید.

پروژه ما یکسری نیازمندی داره که تو تصویر زیر می‌تونید ببینید

سیمفونی flex در لیست نیازمندی‌های پروژه در هنگام نصب افزوده می‌شود و وجود دارد.
سیمفونی flex در لیست نیازمندی‌های پروژه در هنگام نصب افزوده می‌شود و وجود دارد.

یکی از این نیازمندی ها سیمفونی flex هست، که در واقع یک پلاگین برای composer با دو قدرت باورنکردیه!


قدرت باورنکردنیه اول! نام‌های مستعار در flex

که خب بهتره اول flex.symfony.com رو یه نگاهی بندازید، این آدرس لیست رسیدهای(Recipes) سیمفونی رو نشون میده، اگر تو این سایت کلمه security رو چک کنید تعدادی بسته مختلف لیست میشن که یکی از اونا sensiolabs/security-checker هست، اگر دقت کرده باشید این بسته به همراه چندتا نام مستعار اومده، وقتی شما در خواست نصب یک بسته رو با استفاده از این نام‌های مستعار میدید کار flex شروع میشه و براتون میره و بسته اصلی رو نصب میکنه، برای مثال شما نیاز به یک بسته برای ثبت لاگ های سیستمتون دارید؟ وقتشه دستور composer install logger رو بزنید یا حتی اگر لازمه که ایمیل ارسال کنید دستور composer install mailer رو بزنید و بقیه کارها رو به سیمفونی flex بسپارید.

خب حالا اگر دوباره به فایل composer.json خودمون نگاه کنیم تو لیست بسته‌های مورد نیاز در زمانه توسعه می‌بینید که بسته اصلی به درستی نصب شده.

لیست بسته‌های مورد نیاز در زمان توسعه پروژه،‌ بسته security-checker به درستی نصب شده
لیست بسته‌های مورد نیاز در زمان توسعه پروژه،‌ بسته security-checker به درستی نصب شده

قدرت باورنکردنیه دوم! رسیدهای Flex

این قابلیت حتی به نظرم از قبلی هم خیلی بهتره! خب با توجه به این که ما از git برای مدیریت ورژن پروژه استفاده می‌کنیم به راحتی می‌تونیم با استفاده از دستور git status تغییرات اضافه شده به پروژه رو چک کنیم! بریم ببینیم این بسته نصب شده جدید چه چیزی همراه خودش آورده!

تغییرات پروژه بعد از نصب بسته sec-checker
تغییرات پروژه بعد از نصب بسته sec-checker

خب همونطور که میدونید تغییر تو فایل‌های composer.json و composer.lock طبیعی هستش، ولی فایل جدید symfony.lock چی هست؟ این فایل یک فایل تنظیمات جدید هست که توسط flex مدیریت میشه.

تغییر بعدی اضافه شدن فایل جدید security_checker.yaml هست، این فایل توسط رسید(Recipe) تو سیستم ایجاد شده و این عالیه! بسته جدید که نصب کردیم و به همراه این فایل باعث میشه که ما یک دستور ( command ) جدید درون سیستم داشته باشیم.

php bin/console security:check 

روش استفاده در عمل از رسیدها در سیمفونی flex رو می‌تونید ببینید! هر زمان که ما یک بسته جدید نصب می‌کنیم سعی می‌کنیم رسید اون بسته رو اجرا کنه و اگر لازم هست فایل تنظیمات،‌ ایجاد پوشه و حتی تغییر در فایل .gitignore رو برای ما به طور خودکار انجام بده! به نظر من که عالیه!

یک تغییر جالب دیگه که برای ما انجام شده، اضافه شدن یک اسکریپت جدید به لیست اسکریپت‌های کامپوزر هست!

با استفاده از این تغییر هر زمان که ما دستور composer install رو اجرا کنیم، security-checker به طور خودکار اجرا میشه.

برای اضافه کردن رسید جدید که کارها رو به طور خودکار براتون انجام بده من ترجیح میدم که تو بخش ساخت باندل جدید به سیمفونی صبحت کنم ولی برای اطلاعات بیشتر میتونید از اطلاعات رسید‌های سیمفونی استفاده کنید.


نصب توویگ (Twig)

خب قبل از شروع نصب توویگ باید یک یادآوری از قسمت قبل داشته باشیم، اگر یادتون باشه کنترل‌ها باید یک آبجکت پاسخ (Response Object) از سیمفونی رو به عنوان خروجی برگردونن، حالا این پاسخ مهم نیست که یک قالب رندر شده باشه و یا یک پاسخ JSON که در نتیجه درخواست های دیتابیس ایجاد شده.

اگر برنامه شما نیاز داره که کد HTML به عنوان خروجی بده، یه ابزار بسیار پر کاربرد به اسم توویگ (Twig) وجود داره.

برای نصب توویگ کافیه دستور زیر رو بزنید

composer require twig

در ادامه بخش‌های بعدی برنامه که داریم می‌نویسیم شامل کدهای HTML و بخش‌هایی هم شامل API برای استفاده توسط جاوا اسکریپت،‌ برای همین اگر به دنبال نوشتن API با سیمفونی هستید با این سری مطالب همراه باشید.

بعد از نصب سیمفونی Flex به طور خودکار تغییرات زیر رو در فایل config/bundles.php اضافه می‌کنه.

اضافه شدن باندل‌های توویگ درون فایل bundles.php
اضافه شدن باندل‌های توویگ درون فایل bundles.php


تغییر بعدی اضافه شدن فایل تنظیمات توویگ در آدرس config/packages/twig.yaml به شکل زیر می‌باشد.

تنظیمات پیشفرض توویگ بعد از نصب باندل
تنظیمات پیشفرض توویگ بعد از نصب باندل

همچنین به طور پیش فرض در آدرس موجود در این فایل تنظیمات ، پوشه templates، یک قالب توویگ ایجاد میشه که در رابطه با این فایل و کار کردن با فایل‌های توویگ در قسمت‌های بعدی بیشتر صحبت می‌کنیم.


ممنون که در این مطلب با من همراه بودید، منتظر نظراتتون هستم!

در صفحه گیت‌هاب پروژه می‌تونید کد این بخش رو دانلود کنید.

منبع: symfonycasts