yii 计划任务,yii
yii 计划任务,yii
Yii框架自动生成的Web应用骨架的目录里面有连个脚步文件,yiic和yiic.bat。 yiic是Unix/Linux平台用的,yiic.bat是windows平台用的。如果要查看脚本的帮助可以进入到脚步所在的根目录,然后执行yiic help,他会列出所有可用的命令,里面包括Yii提供的系统命令和用户自定义的命令。 如果要知道如何执行一个命令可以执行以下命令: 1 yiic help 如果要执行一个命令,可以使用如下格式: 1 yiic [parameters...] 1、创建命令 控制台命令都是以类文件的方式存储在 CConsoleApplication::commandPath 指定的目录。默认是存储在 protected/commands 。 每个类必须继承自 CConsoleCommand 。类名的格式是 XyzCommand ,命令的名字首字母大写,xyz才是命令本身。 可以通过配置 CConsoleApplication::commandMap ,命令类可以有不同的命名约定和不同的目录。 创建一个新命令你可以覆盖 CConsoleCommand::run() 或者写一个或多个action. 覆盖父类的run方法格式可以是: 1 public function run( $args ) { ... } 当执行一个命令的时候,run方法将会被调用,任何加在调用命令后面的参数将会赋给$args。 在命令内部可以用 Yii::app() 调用这个控制台的实例。 从1.1.1版本开始,可以创建一个全局的命令,被在同一台机器上的所有的Yii应用所共享。为了达到这样的目的,你需要定义一个名为 YII_CONSOLE_COMMANDS 的环境变量,指向一个已存在的目录,然后把这个全局的命令类放在这个目录里面。 2、控制台命令Action 一个控制台命令action就是一个控制台命令类的一个方法。 方法名的格式: actionXyz ,action名的首字母大写,xyz才是被调用的action本身。 执行一个action的命令格式: 1 yiic --option1=value1 --option2=value2 ... 后面的option-value对将会赋给这个action方法的参数。如果你给出了option名而没有给出对应的值,那么这个option将会被认为是boolean值true。 action的参数也可以声明一个数组类型,如: 1 public function actionIndex( array $types ) { ... } 调用它的命令是: 1 yiic sitemap index --types=News --types=Article 最终命令调用是: actionIndex(array('News', 'Article'))。 从1.1.6开始,还支持匿名参数和全局选项。 匿名参数 指的是不按正常选项参数格式(the format of options)的命令行参数,比如: yiic sitemap index --limit=5 News ,News就是一个匿名参数。 要使用匿名参数,action必须声明一个 $args变量,比如: 1 public function actionIndex( $limit =10, $args = array ()) {...} $ args 会接收到所有可用的匿名参数。 全局选项 (Global options)指的是一个命令行选项被这个命令的所有action所共享。 比如:一个命令有好几个action,我们想在每个action里面都有一个名字叫 verbose 的选项,我们可以在每个action方法里面都声明一个叫 $verbose 的参数。 一个更好的做法是把它声明成这个命令类的公共成员变量( public member variable ),这样 verbose 就会成为一个全局的选项。 1 class SitemapCommand extends CConsoleCommand 2 { 3 public $verbose =false; 4 public function actionIndex( $type ) {...} 5 } 这样就可以执行一个带 verbose 选项的命令: 1 yiic sitemap index --verbose=1 --type=News 3、退出代码 执行命令的宿主机器可能需要检测我们的命令执行成功与否,它可以通过检测命令最后退出是返回的退出码来识别。 退出码是介于0到254之间的整型值 ,0表示这个命令执行成功,非0表示这个命令执行期间出现错误。 你可以在action或者是run方法里面通过一个退出码来退出你的应用程序。 比如: 1 if ( /* error */ ) { 2 return 1; // exit with error code 1 3 } 4 // ... do something ... 5 return 0; // exit successfully 假如没有返回值,将会有一个默认的0被返回 4、定制控制台应用 默认的控制台应用配置位置: protected/config/console.php 。 任何 CConsoleApplication 的公共属性都可以在这个文件里面配置。 这个配置文件类似于普通的web应用的配置文件。 Customizing Console Applications By default, if an application is created using the yiic webapp tool, the configuration for the console application will be protected/config/console.php . Like a Web application configuration file, this file is a PHP script which returns an array representing the property initial values for a console application instance. As a result, any public property of CConsoleApplication can be configured in this file. Because console commands are often created to serve for the Web application, they need to access the resources (such as DB connections) that are used by the latter. We can do so in the console application configuration file like the following: return array( ...... 'components'=>array( 'db'=>array( ...... ), ), ); As we can see, the format of the configuration is very similar to what we do in a Web application configuration. This is because both CConsoleApplication and CWebApplication share the same base class. 文章参考: http://www.yiiframework.com/doc/guide/1.1/zh_cn/topics.console ---------------------------------------------------------------------------------------------------------------------- 一篇文章: 使用YII框架进行PHP程序的计划任务教程 1.当你通过yiic创建一个webapp应用后, 会在 webapp/protected/下生成yiic.php, 由于是命令行应用,所以这里的yiic.php其实就是与webapp下的index.php一样的,命令行入口文件。 2.打开yiic文件,添加一行设置,将commands目录的路径添加到yiic中,这样,yiic就能够找到commands目录下的命令文件了,修改后的代码如下,红色为新加入代码: 1 2 3 4 5 6 $yiic =dirname( __FILE__ ). '/http://www.cnblogs.com/yii-read-only/framework/yiic.php' ; $config =dirname( __FILE__ ). '/config/console.php' ; @putenv( 'YII_CONSOLE_COMMANDS=' . dirname( __FILE__ ). '/commands' ); require_once ( $yiic ); 或者是: 配置好,要执行的页面。本文为 protected/commands/crons.php run(); ?> 3.配置好produ ct/config/console.php里面需要用到的组件,像数据库连接。 配置main/console.php,设置import路径,以及db连接,这部份与main.php类似。 php // This is the configuration for yiic console application. // Any writable CConsoleApplication properties can be configured here. return array ( 'basePath' => dirname ( __FILE__ ) . DIRECTORY_SEPARATOR . '..', 'name' => 'My Console Application', 'import' => array ( 'application.models.*', 'application.components.*', 'application.components.base.*', 'application.components.imgthumb.*', 'application.models.form.*', '等等,导入所要的类包' ), 'components' => array ( // Main DB connection 'db' => array ( 'connectionString' => 'mysql:host=localhost;dbname=数据库名称', 'emulatePrepare' => true, 'username' => '数据库名称', 'password' => '数据库密码', 'charset' => 'utf8', 'tablePrefix' => 'company_'、//表前缀 ), 'log' => array ( 'class' => 'CLogRouter', 'routes' => array ( array ( 'class' => 'CFileLogRoute', 'levels' => 'error, warning' ) ) ) ) ); 4.继承CConsoleCommand写入自己的命令类,Yii提供了两种方式去执行, 如果你执行单一的任务,直接在run方法里面写,另外一种 就是同写你的Controller(控制器),增加actionXXX即可。 本实例采用第二种方式,即采用web程序开发的方式,在基础了CConsoleCommand的类中添加actionXXX方法来执行程序。 我们在commands目录下创建一个文件,来执行我们要执行的任务,暂且命名为TestCommand.php 。 4,打开你的linux命令窗口,创建自动任务。至于windows系统 ,是计划任务(win系统,可以谷歌如何操作),下面只讲linux系统。 crontab -e ##然后输入 1 * * * * php /具体地址/protected/commands/crons.php Test >>/具体地址/protected/commands/test.log ##上面命令说明,每分钟执行Test任务一次,把日志保存在test.log下 至此,自动化任务已完成。 windows下面计划任务: schtasks /create /sc minute /mo 1 /tn "taskPhp" /tr "php F:\xampp\htdocs\php\yiiblog2\protected\commands\crons.php CInsert insertData" 删除计划任务 schtasks /delete /tn "taskPhp" 每个1分钟就执行CInsert命令中的insertData方法。 参考了: http://www.cnlvzi.com/index.php/Index/article/id/124 http://www.yiibase.com/yii/218.html http://www.yiiframework.com/wiki/221/cronjobsyii/ http://986866294.blog.163.com/blog/static/1651222522013571578115/

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

隨著雲端運算技術的不斷發展,資料的備份已經成為了每個企業必須要做的事情。在這樣的背景下,開發一款高可用的雲端備份系統尤其重要。而PHP框架Yii是一款功能強大的框架,可以幫助開發者快速建立高效能的Web應用程式。以下將介紹如何使用Yii框架開發一款高可用的雲端備份系統。設計資料庫模型在Yii框架中,資料庫模型是非常重要的一環。因為資料備份系統需要用到很多的表和關

隨著互聯網的不斷發展,Web應用程式開發的需求也越來越高。對於開發人員而言,開發應用程式需要一個穩定、高效、強大的框架,這樣可以提高開發效率。 Yii是一款領先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎上進一步優化了效能和程式碼品質。在這篇文章中,我們將介紹如何使用Yii3框架來開發PHP應用程式。

隨著Web應用需求的不斷增長,開發者在選擇開發框架方面也越來越有選擇的空間。 Symfony和Yii2是兩個備受歡迎的PHP框架,它們都具有強大的功能和效能,但在面對需要開發大型網路應用程式時,哪個框架更適合呢?接下來我們將對Symphony和Yii2進行比較分析,以幫助你更好地進行選擇。基本概述Symphony是一個由PHP編寫的開源Web應用框架,它是建立

在當前資訊時代,大數據、人工智慧、雲端運算等技術已成為了各大企業關注的熱點。在這些技術中,顯示卡渲染技術作為一種高效能圖形處理技術,受到了越來越多的關注。顯示卡渲染技術廣泛應用於遊戲開發、影視特效、工程建模等領域。而對於開發者來說,選擇一個適合自己專案的框架,是一個非常重要的決策。在目前的語言中,PHP是一種相當有活力的語言,一些優秀的PHP框架如Yii2、Ph

Yii框架是一個開源的PHPWeb應用程式框架,提供了眾多的工具和元件,簡化了Web應用程式開發的流程,其中資料查詢是其中一個重要的元件之一。在Yii框架中,我們可以使用類似SQL的語法來存取資料庫,從而有效率地查詢和操作資料。 Yii框架的查詢建構器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

如果您問「Yii是什麼?」請參閱我之前的教學:Yii框架簡介,其中回顧了Yii的優點,並概述了2014年10月發布的Yii2.0的新增功能。嗯>在這個使用Yii2程式設計系列中,我將指導讀者使用Yii2PHP框架。在今天的教學中,我將與您分享如何利用Yii的控制台功能來執行cron作業。過去,我在cron作業中使用了wget—可透過Web存取的URL來執行我的後台任務。這引發了安全性問題並存在一些效能問題。雖然我在我們的啟動系列安全性專題中討論了一些減輕風險的方法,但我曾希望過渡到控制台驅動的命令

隨著網路的快速發展,API成為了各種應用間資料交換的重要方式。因此,開發一款易於維護、高效、穩定的API框架變得越來越重要。而在選擇API框架時,Yii2和Symfony是兩個備受開發者歡迎的選擇。那麼,哪一個比較適合API開發呢?本文將對這兩個框架進行比較,並給出一些結論。一、基本介紹Yii2和Symfony都是成熟的PHP框架,都有相應的擴展,可以用來開

yii框架:本文為大家介紹了yii將物件轉換為陣列或直接輸出為json格式的方法,具有一定的參考價值,希望能幫助大家。
