PrestaShop CMS (8、1.7、1.6、1.5) の完全に文書化されたヘルパー クラス。これらのヘルパーを使用すると、一部のプログラミング タスクがより簡単になり、より速く実行できるようになります。図書館のホームページです。
ヘルパーリスト:
コントローラーリスト:
コンポーネントリスト:
すべてのメソッドとクラスについては完全に文書化されているため、ここではいくつかの例を示します。つまり、各クラスの例を 1 つだけ示します。
ArrayHelper 、配列のインデックス付け。
$array = [
['id' => '123', 'data' => 'abc'],
['id' => '345', 'data' => 'def'],
];
$result = ArrayHelper::index($array, 'id');
// The result is:
// [
// '123' => ['id' => '123', 'data' => 'abc'],
// '345' => ['id' => '345', 'data' => 'def'],
// ]
FormHelper 、 select
要素のソース配列を生成します。
$array = [
['123' => 'abc'],
['345' => 'def'],
];
$result = FormHelper::generateList($array);
// The result is:
// [
// ['id' => '123', 'name' => 'abc'],
// ['id' => '345', 'name' => 'def']
// ]
// The usage in a form definition:
array(
'type' => 'select',
'label' => 'Example',
'name' => 'example',
'options' => array(
'query' => $result,
'id' => 'id',
'name' => 'name',
),
)
LogHelper 、モジュール内のエラーを記録します。
public function example() {
$this->log('An error occupied.');
}
public function log($messages, $level = AbstractLogger::WARNING) {
LogHelper::log($messages, $level, $this->name, $this->id);
}
DiagnosticHelper 、メソッドがオーバーライドされているかどうかを確認します。
if (DiagnosticHelper::isMethodOverridden('AddressController', 'init')) {
$this->_errors[] = $this->l('The AddressController::init() already overridden.');
}
AjaxModuleFrontController 、モジュール用の単純な Ajax コントローラーを作成します。
class ExampleAjaxModuleFrontController extends AjaxModuleFrontController {
protected function actionSave() {
$this->ajaxResponse->result = true;
$this->ajaxResponse->message = 'Success!';
}
}
// The output result is:
// {"result":true,"data":null,"html":"","message":"Success!","errors":[]}
ModuleHelper 、指定されたディレクトリ パスによってモジュールのインスタンスを取得します。
$path = '/var/www/prestashop/modules/homecategoriez/classes';
$module = ModuleHelper::getInstanceByPath($path); /** @var HomeCategoriez $module The instance of the module: HomeCategoriez */
FileHelper 、サイトにアップロードできる実際の最大ファイル サイズを取得します。
$sizeInBytes = FileHelper::getFileSizeUploadLimit();
キャッシュ コンポーネント。DB クエリ結果をキャッシュします。
public function getAllCustomers() {
$cacheKey = CacheProvider::getKeyName(__METHOD__);
$data = CacheProvider::getInstance()->get($cacheKey);
if (false === $data) {
$data = Db::getInstance()->executeS('SELECT * FROM ps_customer', true, false);
CacheProvider::getInstance()->set($cacheKey, $data, 60 * 60 * 24);
}
return $data;
}
Autoloader : Composer のオートローダーを使用して、たとえば、 composer.json
ファイルにクラスマップを追加することによってモジュールにPHP クラスを自動的にロードします。
"autoload": {
"classmap": [
"classes/",
"interfaces/"
]
}
依存関係をcomposer.json
ファイルに直接追加します。
"repositories": [
{
"type": "vcs",
"url": "https://github.com/zapalm/prestashop-helpers"
}
],
"require": {
"php": ">=5.5",
"zapalm/prestashop-helpers": "dev-master"
},
プロジェクトにスターを付けます。それだけです! :)
寄稿者は次のルールに従う必要があります。
プロジェクトのファイルを編集したい貢献者は、次のプロセスに従う必要があります。
コーディング標準を適用するのが難しい場合でも、ためらわずにプル リクエストを作成してください。