PrestaShop CMS(8, 1.7, 1.6, 1.5)에 대한 전체 문서화된 도우미 클래스입니다. 이러한 도우미를 사용하면 일부 프로그래밍 작업이 더 간단해지고 더 빠르게 완료됩니다. 도서관 홈페이지입니다.
도우미 목록:
컨트롤러 목록:
구성 요소 목록:
모든 메소드와 클래스는 완전히 문서화되어 있으므로 여기에 몇 가지 예가 있습니다. 즉, 각 클래스에 대해 하나씩만 설명합니다.
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의 자동 로더를 사용하여 자동으로 PHP 클래스를 로드합니다. 예를 들어, composer.json
파일에 클래스맵을 추가하여 모듈에 있습니다 .
"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"
},
프로젝트에 별점을 주세요. 그게 다야! :)
기여자는 다음 규칙을 따라야 합니다 .
프로젝트 파일을 편집하려는 기여자는 다음 프로세스를 따라야 합니다:
코딩 표준을 적용하기 어렵다면 주저하지 말고 풀 리퀘스트를 작성해 보세요.