با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته آموختیم که چگونه به گسترش Views ها بپردازیم. در ادامه کار با Views ها، در این جلسه به آموزش کار با عناصر Views ها در CakePHP می پردازیم.
بخشهای خاصی از صفحات وب در صفحات مختلف وب تکرار می شوند، اما ممکن است که موقعیت آن ها در مکان های مختلف متفاوت باشد.
CakePHP می تواند به ما در استفاده از این قسمت های مکرر کمک کند.
این قسمت های قابل استفاده مجدد Elements یا عناصر نامیده می شود که از help box و extra menu و .. تشکیل شده است.
یک عنصر در واقع یک mini-view پایه است.
امکان انتقال متغیرها در عناصر وجود دارد.
1 | Cake\View\View::element(string $elementPath, array $data, array $options =[]) |
در تابع بالا سه arguments وجود دارد:
در این سه arguments اولی اجباری است، اما بقیه اختیاری هستند.
یک فایل عنصر را در دایرکتوری src / Template / Element به نام helloworld.ctp ایجاد کنید. سپس کد زیر را در آن فایل کپی کنید.
src/Template/Element/helloworld.ctp
1 | <p>Hello World</p> |
یک پوشه Elems را در src / Template ایجاد کنید و زیر آن دایرکتوری یک فایل نمایش به نام index.ctp ایجاد نمایید. سپس کد زیر را در آن فایل کپی کنید.
src/Template/Elems/index.ctp
1 | Element Example: <?php echo $this→element('helloworld'); ?> |
تغییرات زیر را در فایل 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('/elementexample',['controller'=>'Elems','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل ElemsController.php را در src / Controller / ElemsController.php ایجاد کنید. سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Controller/ElemsController.php
1 2 3 4 5 6 7 8 9 10 11 | <?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; class ElemsController extends AppController{ public function index(){ } } ?> |
مثال بالا را با مراجعه به URL زیر اجرا کنید.
http://localhost:85/CakePHP/element-example
پس از اجرا، URL بالا به شما خروجی زیر را می دهد.
در این جلسه با آموزش کار با عناصر Views ها در CakePHP همراه شما بودیم.
در جلسه بعدی به آموزش کار با View Events ها می پردازیم.
با پی وی لرن همراه باشید.