با سلام خدمت کاربران گرامی سایت پی وی لرن و آن دسته از کاربرانی که به زبان PHP علاقه دارند. این دوره آموزش CakePHP مخصوص آن ها تهیه شده تا مهارت و تسلط خود را بر این زبان با یادگیری CakePHP به حد کمال برسانند و با کمک آن به یک برنامه نویس حرفه ای در عرصه PHP تبدیل شوند. در جلسه گذشته آموختیم که چگونه باید خطاها و مشکلاتی را که ممکن است در این فریم ورک رخ دهد حل کرد. در این جلسه نیز آموزش Logging در CakePHP ارائه می گردد تا با نحوه ورود به CakePHP نیز آشنا شوید.
ورود به CakePHP یک کار بسیار ساده است و تنها لازم است از یک تابع برای این کار استفاده نمایید.
با استفاده از این تابع می توانید errors, exceptions, user activities, action و taken by users را نیز برای هر پروسه بکگراندی نظیر cronjob وارد نمایید.
تابع ()log در CakePHP که توسط LogTrait فراهم آمده و یک ancestor رایج برای اغلب کلاس های CakePHP است؛ وظیفه وارد کردن داده ها را بر عهده دارد.
ما می توانیم ورود به سیستم را در فایل config / app.php پیکربندی کنیم.
یک بخش ورودی در فایل وجود دارد که در آن می توانید گزینه های ورود به سیستم را همانطور که در تصویر زیر نشان داده شده پیکربندی نمایید.
به طور پیش فرض، شما دو سطح ورود را مشاهده خواهید کرد – error و debug که قبلا برای شما پیکربندی شده است و هر کدام سطوح مختلفی از پیام ها را مدیریت خواهند کرد.
CakePHP از سطوح مختلف ورود به سیستم پشتیبانی می کند که در ادامه به آن ها می پردازیم:
دو راه وجود دارد که می توانیم در یک فایل ورودی بنویسیم.
اولین راه استفاده از روش استاتیک ()write است. در می توانید زیر سنتکس این روش ()static write را ببینید.
سینتکس | مثال :
| ||
پارامترها | این بخش سطوح نوشتن را مشخص می نماید. در این بخش مقدار ما باید ادغام شده و یا رشته ما باید با سطح شناخته شده مطابق باشد. اتصال پیام به log. اطلاعات اضافی برای ورود به سیستم پیام استفاده می شوند. special scope key می تواند منتقل شود تا برای فیلتر کردن بیشتر موتورهای ورودی مورد استفاده قرار گیرد.اگر یک رشته یا یک array شاخص عددی گذر شود، آن را به عنوان scope key تلقی می نماییم. | ||
Returns بازگردانی | بولین boolean | ||
توضیحات | پیغام داده شده را و نیز تمام آداپتورهای ورودی پیکربندی را تایپ می کند. آداپتورهای پیکربندی هر دو متغیر $ level و $ message را منتقل می کنند. سطح $ یکی از strings/values دنبال شده است. |
دومین مورد آن است که تابع log() shortcut که در هر یک از ()LogTrait Calling log به فراخوانی ()Log::write می پردازد استفاده کنیم.
تغییر زیر را در فایل 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('logex',['controller'=>'Logexs','action'=>'index']); $routes->fallbacks('DashedRoute'); }); Plugin::routes(); |
یک فایل LogexController.php در src/Controller/ExpsController.php بسازید و سپس کد زیر را در فایل کنترل کننده کپی کنید.
src/Controller/LogexController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php namespace App\Controller; use App\Controller\AppController; use Cake\Log\Log; class LogexsController extends AppController{ public function index(){ /*The first way to write to log file.*/ Log::write('debug',"Something didn't work."); /*The second way to write to log file.*/ $this->log("Something didn't work.",'debug'); } } ?> |
یک دایرکتوری Logexs at src/Template ایجاد کنید و یک View file زیر دایرکتوری فراخوانی شده index.ctp بسازید و سپس کد زیر را در آن فایل کننده کپی کنید.
src/Template/Logexs/index.ctp
1 | Something is written in log file. Check log file logs\debug.log |
مثال بالا را با مراجعه به URL زیر اجرا نمایید.
پس از اجرا، خروجی زیر را دریافت خواهید کرد.
logexs
در این جلسه با آموزش Logging در CakePHP همراه شما بودیم.
در جلسه بعد به آموزش مدیریت فرم ها در CakePHP می پردازیم.
با پی وی لرن همراه باشید.