با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته به صورت مقدماتی با Views ها آشنا شدیم. در ادامه دوره CakePHP قرار است بیشتر با Views ها و کاربرد آن ها آشنا شویم. لذا این جلسه را به آموزش گسترش Views ها در CakePHP اختصاص داده ایم.
بارها پیش آمده است که هنگام ساخت صفحات وب، می خواهیم قسمت خاصی از صفحات را در صفحات دیگر تکرار کنیم اما برای انجام آن با محدودیت هایی رو به رو بوده ایم.
اما CakePHP دارای امکاناتی است که می تواند یک View را به یک View دیگر گسترش داد (قسمت خاصی از صفحات را در صفحات دیگر تکرار کرد) بدون این که نیازی به تکرار کدها باشد.
برای این کار می توان از روش ()extended برای گسترش View ها در View file استفاده کرد.
این روش یک پارامتر، یعنی نام فایل مشاهده مسیر را می گیرد.
نکته: هنگام ارائه نام پرونده مشاهده، از extension.ctp استفاده نکنید.
تغییرات زیر را در فایل 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('extend',['controller'=>'Extends','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل ExtendsController.php را در src / Controller / ExtendsController.php ایجاد کنید. سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Controller/ExtendsController.php
1 2 3 4 5 6 7 8 9 | <?php namespace App\Controller; use App\Controller\AppController; class ExtendsController extends AppController{ public function index(){ } } ?> |
یک دایرکتوری Extensions در src / Template بسازید و در زیر پوشه یک فایل View فراخوانی شده header.ctp بسازید. سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Template/Extends/header.ctp
1 2 3 | <div align = "center"><h1>Common Header</h1></div> <?= $this->fetch('content') ?> |
یک View دیگر در زیر دایرکتوری Extends با نام index.ctp بسازید. ر سپس کد زیر را در فایل کنترل کننده کپی کنید.
در اینجا ما صفحه header.ctp را گسترش داده ایم.
src/Template/Extends/index.ctp
1 2 | <?php $this->extend('header'); ?> This is an example of extending view. |
مثال بالا را با مراجعه به URL زیر اجرا نمایید.
http://localhost:85/CakePHP/extend
پس از اجرا، خروجی زیر را دریافت خواهید کرد.
در این جلسه به آموزش گسترش Views ها در CakePHP پرداختیم.
در جلسه بعدی به آموزش کار با عناصر Views ها در CakePHP خواهیم پرداخت.
با پی وی لرن همراه باشید.