对Magento进行shell语言

redmaomail 2024-07-24 18:12 阅读数 64 #Magento

红帽云邮外贸主机

有时候我们需要从Magento外部访问Magento系统。一种方式是使用PHP shell语言引导Magento。一个普通PHP开发者会在自己代码的底部创建一个引导文件来访问Magento根目录。如你猜测的一样,有两种引导Magento的方式,常用方式和Magento方式。在这篇文章中,我们将概述如何以Magento的方式创建PHP shell脚本来引导Magento。

对于初学者来说,这里是引导Magento的常规方法(Magento中index.php中使用的):

require_once 'app/Mage.php';
Mage::app();
 
// Our own code goes here

虽然这种方法没有错误,但是和Magento方式相比有些不足。

The Magento way

现在,让我们看看用Magento方式来实现。如果你访问Magento根目录下shell文件夹,你会发现一些"Magento方式的"shell语言。比如,你有index.php可以使用所选的索引来重建索引,或者compiler.php去控制Magento编译器功能状态。如果你看了PHP shell脚本,你会看到在abstract.php文件包含Mage_Shell_Abstract类和其所包含、扩展Mage_Shell_Abstract类。

有些人想知道这样比单纯请求Mage.php好在哪。特别是当你看到Mage_Shell_Abstract结构体后,发现做的同样的事情。

使用Magento方式的有点之一是Mage_Shell_Abstract类提供解析命令行参数。第二,Mage_Shell_Abstract结构体会调用Mage_Shell_Abstract::__applyPhpVariables() function函数来解析.htaccess文件并应用php设置到shell脚本。

执行过程很明显。我将粘贴出Magento PHP shell脚本的骨架类:

<?php
require_once 'abstract.php';
 
class Inchoo_Shell_Myscript extends Mage_Shell_Abstract
{
    protected $_argname = array();
 
    public function __construct() {
        parent::__construct();
 
        // Time limit to infinity
        set_time_limit(0);     
 
        // Get command line argument named "argname"
        // Accepts multiple values (comma separated)
        if($this->getArg('argname')) {
            $this->_argname = array_merge(
                $this->_argname,
                array_map(
                    'trim',
                    explode(',', $this->getArg('argname'))
                )
            );
        }
    }
 
    // Shell script point of entry
    public function run() {
 
    }
 
    // Usage instructions
    public function usageHelp()
    {
        return <<       Argument description
 
  help                   This help
 
USAGE;
    }
}
// Instantiate
$shell = new Inchoo_Shell_Myscript();
 
// Initiate script
$shell->run();

电商网站开发服务


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机