首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php-cli运行Prestashop

使用php-cli运行Prestashop
EN

Stack Overflow用户
提问于 2013-06-24 16:29:51
回答 3查看 3.3K关注 0票数 1

我需要使用一些PrestaShop特性运行一个CLI (命令行接口)脚本。更具体地说,我需要运行一些管理控制器。

为了做到这一点,我需要PrestaShop配置文件,但是它无法加载配置,因为在脚本执行期间,SuperAdministrator显然没有登录。

我的问题是:

  • 从命令行运行PrestaShop的最佳方法是哪种?
  • 如何使PrestaShop认为用户已登录到我的cli脚本中?

主要问题是:

/var/{apachevirtualhostpath}/public/www/classes/controller/AdminController.php中的致命错误:在第1805行中调用非对象上的成员函数isLoggedBack()

我正在运行PS 1.5.4.1。

我还有其他问题,主要是因为域(不适用于cli),但我已经解决了。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-05-29 03:22:17

示例:

代码语言:javascript
复制
    //define('PSDIR', '/var/www/prestashop');
    function regen_htaccess() {
      chdir(PSDIR);
      include('config/config.inc.php');
      Tools::generateHtaccess(null, 1);
    }

    function regen_robots() {
      chdir(PSDIR);
      define('_PS_ADMIN_DIR_', 1);
      include('config/config.inc.php');
      $a = new AdminMetaControllerCore();
      $a->generateRobotsFile();
    }

    function clear_cache() {
      chdir(PSDIR);
      define('_PS_ADMIN_DIR_', 1);
      $_POST['empty_smarty_cache'] = 1;
      include("config/config.inc.php");
      $x = new AdminPerformanceControllerCore();
      $x->postProcess();
    }

这里的关键是在需要实例化管理/类时设置_PS_ADMIN_DIR_以避免isLoggedBack失败。但在编写预prestashop cli.sh之前,您可以先看看webservices。

票数 1
EN

Stack Overflow用户

发布于 2013-06-28 15:16:17

这个正式文档页面是最近的,您可能还没有看到它:

http://doc.prestashop.com/display/PS15/Installing+PrestaShop+using+the+command+line

干杯!

票数 0
EN

Stack Overflow用户

发布于 2013-12-22 08:11:00

使用来自/index.php/install/index_cli.php的最新版本的提示来创建一个脚本来加载PrestaShop框架,然后直接运行所需的命令。

例如,从PrestaShop 1.5.6.1开始,如果您想要删除演示产品和订单并从命令行初始化存储,可以使用以下内容:

警告:此脚本将删除您的数据!如果不了解它的功能,就不要复制和粘贴。

代码语言:javascript
复制
#!/usr/bin/php
<?php

# Initialize PrestaShop framework.  Replace _PS_ROOT_DIR_ with proper path.
require_once(_PS_ROOT_DIR_.'config/config.inc.php');

# Include any dependencies that are not already loaded.
require_once(_PS_MODULE_DIR_.'pscleaner/pscleaner.php');

# Execute PrestaShop command(s).
PSCleaner::truncate('catalog');
PSCleaner::truncate('sales');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17280394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档