直到现在我将所有代码都放在pimcore \ cli \ startup.php中并且它运行正常但是当我以另一种方式尝试时我得到的错误就像 在第7行的C:\ xampp \ htdocs \ pimcore \ website \ var \ cli \ export-objects.php中找不到类'Website \ ObjectExporter' 如何以这种方式运行代码
例如,使用以下内容在/ website / lib / Website文件夹下创建一个ObjectExporter.php:
<?php
namespace Website;
class ObjectExporter
{
public function exportObjects()
{
// Your code
}
}
然后,您可以在控制器操作或CLI脚本中实例化此类。控制器操作位于/ website / controllers文件夹中,需要通过http:http://localhost?controller=default&action=default
调用它们示例:/website/controllers/DefaultController.php
<?php
class DefaultController extends Website_Controller_Action {
public function defaultAction () {
$this->disableViewAutoRender();
$objectExporter = new Website\ObjectExporter();
$objectExporter->exportObjects();
}
}
(您也可以将整个代码直接添加到操作中,但这有点难看,当然取决于此)
但更好,最快捷的方法是使用CLI脚本来处理此类任务。 我喜欢使用/ website / var / cli文件夹(你需要手动创建它,但默认情况下在.htaccess中排除了/ website / var文件夹,这使得它适用于这种用例)。
示例:/website/var/cli/export-objects.php
<?php
$workingDirectory = getcwd();
chdir(__DIR__);
include_once("../../../pimcore/cli/startup.php");
chdir($workingDirectory);
$objectExporter = new Website\ObjectExporter();
$objectExporter->exportObjects();
然后通过在命令行中发出以下命令来运行它:
php website/var/cli/export-objects.php
答案 0 :(得分:0)
这是在pimcore中创建CLI脚本的标准方法: https://www.pimcore.org/wiki/pages/viewpage.action?pageId=16854341
基本上它只是Symfony / Console,详细说明如下: http://symfony.com/doc/current/components/console/introduction.html