magento
シェル、CLI
サーチ…
備考
基本
- シェルスクリプトを使用するには、Linuxコマンドラインを使用するか、SSHを使用してサーバーに接続する必要があります。
- あなたの
MAGENTO_ROOT/shell
行く - スクリプトを実行するには、ie
php -f indexer.php help
ファイルによるコアシェルメソッド
abstract.php
indexer.php
compiler.php
log.php
カスタムPHPシェルスクリプト
実行時間を削減したり、フロントエンドに影響を与えないさまざまな設定を行うために、Webブラウザ以外のMagentoにアクセスする必要があることがあります。
Magentoをブートストラップするには2つの方法がありますが、Magentoの方法は1つだけです。上のサンプルセクションを読んでください。
Mage_Shell_Abstractを拡張せずにシェルを使用する
電話でMagentoをブートストラップ:
require_once 'app/Mage.php';
Mage::app();
// Your code
Mage_Shell_Abstract
を拡張したクラスを使用していないので、これは最も単純な方法ですが、実際はMagentoではありません。拡張されたときにコマンドライン引数を解析するツールを提供するクラスは、その__applyPhpVariables()
を呼び出します(関数は.htaccessファイルシェルスクリプトにphp設定を適用します)。
Magentoの方法でシェルを使用する - Mage_Shell_Abstractを拡張する
魔法の道
ファイルはshell/custom.php
<?php
require_once' abstract.php';
class Stackoverflow_Shell_Custom 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 help
public function usageHelp()
{
return <<<USAGE
Usage: php -f scriptname.php -- [options]
--argname <argvalue> Argument description
help This help
USAGE;
}
}
// Instantiate
$shell = new Stackoverflow_Shell_Custom();
// Initiate script
$shell->run();
}
CLIからの再インデックスの実行
ステータスを表示する:
php indexer.php status
すべての再インデックス
php indexer.php reindexall
再インデックス固有インデックス
php indexer.php --reindex CODE (see list below)
個々のコードのリスト
インデックス | コード |
---|---|
製品の属性 | catalog_product_attribute |
製品価格 | catalog_product_price |
カタログURLリライト | catalog_url |
製品フラットデータ | catalog_product_flat |
カテゴリフラットデータ | catalog_category_flat |
カテゴリ製品 | カタログ_カテゴリ_製品 |
カタログ検索 | catalogsearch_fulltext |
在庫状況 | cataloginventory_stock |
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow