[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

[FuelPHP 1.7] 从任务运行任务

我是开发团队的日下部。

在创建 FuelPHP 任务时,您是否想过从任务中执行任务?我会写一个关于这个的故事。

从任务运行任务

假设有一个任务执行时显示sugoi,如下:

任务一.php

<?php namespace Fuel\Tasks; class TaskOne { public static function run() { \Cli::write('sugoi'); return 0; } }

考虑从另一个任务中运行此 TaskOne。
将调用 TaskOne 的任务定义为 TheTask。

目录结构是

燃料
└应用程序
└任务
├taskone.php
└thetask.php

假设

任务.php

<?php namespace Fuel\Tasks; class TheTask { public static function run() { TaskOne::run(); return 0; } }

你不认为你能做到吗?让我们运行 TheTask。

$ oil精炼 TheTask 致命错误 - 在第 8 行 APPPATH/tasks/thetask.php 中找不到类“Fuel\Tasks\TaskOne”

不。未找到 TaskOne 类。
由于它们是同一命名空间中的类,因此自动加载器似乎会利用加载它们,但事实并非如此。您必须在此处指示加载。

加载任务

我们需要做的是加载taskone.php。

[不推荐]

require_once '/path/fuel/app/tasks/taskone.php';

这样你可以读取目标文件,但你想避免直接在源中写入文件路径。
想一个动态获取路径的方法。
参考Oil命令的实现(fuel/packages/oil/classes/command.php),可以进行如下操作。

[受到推崇的]

<?php namespace Fuel\Tasks; class TheTask { public static function run() { # tasksディレクトリの中からTaskOneに対応するファイルを探し、そのパスを取得 $file = \Finder::search('tasks', strtolower('TaskOne')); # TaskOneのファイルをロード require_once $file; # TaskOneを実行 TaskOne::run(); return 0; } }

我会尝试运行它。

$ 炼油 TheTask sugoi

完成了。就这样。

下次,我们将考虑一些更复杂的事情:如何从任务内调用模块内的任务。

如果您觉得这篇文章有帮助,请点赞!
1
加载中...
1 票,平均:1.00 / 11
3,242
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者