Classes d'assistance entièrement documentées pour PrestaShop CMS (8, 1.7, 1.6, 1.5). Avec ces aides, certaines tâches de programmation deviennent plus simples et plus rapides. La page d'accueil de la bibliothèque.
Liste d'aide :
Liste des contrôleurs :
Liste des composants :
Chaque méthode et classe est entièrement documentée, voici donc plusieurs exemples, c'est-à-dire un seul pour chaque classe.
ArrayHelper , indexant un tableau.
$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 , générant un tableau source pour un élément 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 , enregistrant une erreur dans un module.
public function example() {
$this->log('An error occupied.');
}
public function log($messages, $level = AbstractLogger::WARNING) {
LogHelper::log($messages, $level, $this->name, $this->id);
}
DiagnosticHelper , vérifiant si une méthode est remplacée.
if (DiagnosticHelper::isMethodOverridden('AddressController', 'init')) {
$this->_errors[] = $this->l('The AddressController::init() already overridden.');
}
AjaxModuleFrontController , créant un simple contrôleur Ajax pour un module.
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 , obtenant une instance d'un module par chemin de répertoire donné.
$path = '/var/www/prestashop/modules/homecategoriez/classes';
$module = ModuleHelper::getInstanceByPath($path); /** @var HomeCategoriez $module The instance of the module: HomeCategoriez */
FileHelper , obtenant une taille de fichier maximale réelle pouvant être téléchargée sur un site.
$sizeInBytes = FileHelper::getFileSizeUploadLimit();
Composant de cache , mettant en cache le résultat d'une requête de base de données.
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 , utilisant l'autoloader de Composer pour charger automatiquement les classes PHP, par exemple, dans un module en ajoutant un classmap à votre fichier composer.json .
"autoload": {
"classmap": [
"classes/",
"interfaces/"
]
}
Ajoutez la dépendance directement à votre fichier composer.json :
"repositories": [
{
"type": "vcs",
"url": "https://github.com/zapalm/prestashop-helpers"
}
],
"require": {
"php": ">=5.5",
"zapalm/prestashop-helpers": "dev-master"
},
Donnez la star au projet. C'est tout ! :)
Les contributeurs doivent suivre les règles suivantes :
Les contributeurs souhaitant éditer les fichiers du projet doivent suivre le processus suivant :
N'hésitez pas à créer une pull request si même il vous est difficile d'appliquer les standards de codage.