Your PHP code should be compatible with PHP compatibility chart
Your HTML/CSS/JS code should work with at least:
Mobile-wise:
Use spaces for indentation in every language (PHP, HTML, CSS, etc.):
4 spaces for PHP files, 2 spaces for all other file types.
Use our .editorconfig file in order to easily configure your editor: https://github.com/PrestaShop/PrestaShop/blob/8.0.x/.editorconfig
You should follow the PSR-2 standard, just like PrestaShop does.
In general, we tend to follow the Symfony coding standards.
Use HTML 5 tags:
<br />
→ <br>
<nav>
<section>
All open tags must be closed in the same file (a <div>
should not be opened in header.tpl
then closed in footer.tpl
). Subtemplates (templates meant to be included in another template) must reside inside a /_partials/
folder.
Use CSS3.
We recommend that you follow the RSCSS structure
Make sure your linter tool follows our .eslint file: https://github.com/PrestaShop/PrestaShop/blob/8.0.x/js/.eslintrc.js
If you wish to write ECMAScript 2015 (ES6) code, we recommend using the Babel compiler to maximize compatibility.
A good JS practice consists in splitting files per use, and then compiling them into one.
Learn more about the ES2015 standard: https://babeljs.io/docs/learn-es2015/