با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته با کنترل کننده ها و کار با آن ها آشنا شدیم. در این جلسه علاقمندان این دوره را به آموزش کار با View ها در CakePHP دعوت می نماییم.
همان طور مه می دانید “V” در MVC نشان از Views است.
Views ها مسئول ارسال خروجی به کاربر بر اساس درخواست آن ها است.
View Classes یک روش قدرتمند برای سرعت بخشیدن به روند توسعه است.
فایل View Templates از CakePHP به طور پیش فرض (extension .ctp (CakePHP Template است.
این الگوها داده ها را از کنترل کننده دریافت می کنند و سپس خروجی را رندر می کنند تا بتوان آن را به طور مناسب به کاربر نمایش داد.
می توان از متغیرها و ساختارهای مختلف کنترل در Template استفاده کنیم.
فایل های الگو در / src / Template در دایرکتوری تحت نام کنترل کننده ای که از فایل ها استفاده می کند خیره می شود و بعد ازروی action مربوط به آن نامگذاری می شود.
به عنوان مثال، فایل View برای اکشن ()view کنترل کننده محصولات، به طور معمول در src / Template / Products / view.ctp یافت می شود.
به طور خلاصه، نام کنترل کننده (ProductsController) همان نام پوشه (Products) است، اما بدون کلمه Controller و نام اکشن/ روش (()view) کنترل کننده (ProductsController) مشابه نام فایل مشاهده (view.ctp) می باشد.
متغیرهای View که مقدار را از کنترل کننده دریافت می کنند.
ما می توانیم از متغیرهای زیادی در view templates به هر اندازه که ما می خواهیم استفاده کنیم.
می توان از روش set () برای انتقال مقادیر به متغیرها در views استفاده کرد.
این مجموعه از متغیرها set variables هم در view و هم در layout اکشن رندر شما موجود هستند.
در ادامه می توانید سینتکس روش ()set را ببینید.
1 | Cake\View\View::set(string $var, mixed $value) |
این روش از دو arguments استفاده می نماید؛ نام متغیر و مقدار آن.
تغییرات مورد نظر را در فایل config / routes.php را همانطور که در برنامه زیر نشان داده شده اعمال نمایید.
config/routes.php
1 2 3 4 5 6 7 8 9 10 11 | <?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('template',['controller'=>'Products','action'=>'view']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل ProductsController.php را در src / Controller / ProductsController.php ایجاد کنید سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Controller/ProductsController.php
1 2 3 4 5 6 7 8 9 10 | <?php namespace App\Controller; use App\Controller\AppController; class ProductsController extends AppController{ public function view(){ $this->set('Product_Name','XYZ'); } } ?> |
یک دایرکتوری محصولات در src/Template ایجاد نمایید و در زیر پوشه یک فایل View فراخوانی شده تحت عنوان view.ctp بسازید. سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Template/Products/view.ctp
1 | Value of variable is: <?php echo $Product_Name; ?> |
مثال بالا را با مراجعه به URL زیر اجرا نمایید.
http://localhost:85/CakePHP/template
URL فوق خروجی زیر را تولید می کند.
در این جلسه به آموزش کار با View ها در CakePHP پرداختیم.
در جلسه بعد به این مسئله می پردازیم که چگونه می توان به گسترش Views ها در CakePHP پرداخت.
با پی وی لرن همراه باشید.