Crontab trong yii2

0
847

Giống như trong crontab trong linux ở phần này .Bạn hoàn toàn có thể tạo được crontab trong code với yii2 .Ở phần này chúng ta sẽ đi tìm hiểu các phần sau

  • Lý do dùng crobtab
  • Cách tạo câu lệnh crontab
  • Cách chạy crontab

Lý do dùng crobtab

Khi nào cần dùng crontab .Khi chúng ta cần set up 1 việc lập đi lập lại nhiều lần .Ví dụ như clear cache , auto kiểm tra số lượng bảng ghi ,auto gửi mail cho quản trị website sau 1 khoảng thời gian nào đó hoặc đơn giản chỉ là tạo bảng ghi cho RBAC mà thôi

Cách tạo câu lệnh crontab

Ở đây mình tạo 1 lệnh demo cho các bạn xem nhé :

<?php
namespace console\controllers;
use yii\base\Controller;

class TestController extends Controller
{
	public function actionIndex()
	{
		echo 'Crontab dang chay';
	}
}

Còn đây là cách mình tạo Rbac trong yii2 các bạn xem và tham khảo nhé

<?php
namespace console\controllers;
use yii\base\Controller;

class RbacController extends Controller
{
	public function actionIndex()
	{
		$auth = \Yii::$app->authManager;
		 /**
		  * thêm quyền permission như quyền được tạo,quyền được update
		  */
		  
		$permission_create = $auth->createPermission('create_post');
		$permission_create->description ='Permission create post';
		$permission_update = $auth->createPermission('update_post');
		$permission_update->description='Permission update post';
		$permission_delete = $auth->createPermission('delete_post');
		$permission_delete->description='Permission delete post';
		$auth->add($permission_create);
		$auth->add($permission_delete);
		$auth->add($permission_update);
		
		//thêm vai trò người dùng vào roles được sử dụng những quyền nào
		$author = $auth->createRole('author');
		$author->description ='vai tro tac gia';
		$admin = $auth->createRole('admin');
		$admin->description ='vai tro admin';
		$auth->add($author);
		$auth->add($admin);
		/**
		 * xác định vai trò có những quyền nào
		 * tác giả có quyền được tạo,update
		 * admin có quyền được tạo ,update,xóa
		 */
		$auth->addChild($author, $permission_create);
		$auth->addChild($author, $permission_update);
		$auth->addChild($admin, $author);
		
		// xác định ai có quyền nào dựa vào id của người dùng trong bảng user
		$auth->assign($admin, '1');
		$auth->assign($author, '2');
		echo 'Da tao Rbac xong ban vao folder consolo/controllers/rbac de xem them';
	}
}

Cách chạy crontab

Bạn vào cmd trỏ đến thư mục chứa code sau đó chạy lệnh yii rbac hoặc yii test như hình dưới đây

OK vậy là giờ bạn có thể biết cách chạy 1 ứng dụng auto rồi đó .Bạn có thể sáng tạo thêm như là việc tự động tạo database với console