Atom PHP Environment + CodeIgniter 3 & 4
Install
Download and install Atom Editor:
cd ~/Downloads
wget https://github.com/atom/atom/releases/download/v1.15.0/atom-amd64.deb
sudo dpkg -i atom-amd64.deb
Install required OS packages:
sudo apt install php php-sqlite3 php-mbstring sqlite3 composer npm
Code Formatters
atom-beautify uses JS Beautify by default.
sudo npm -g install js-beautify
apm install atom-beautify
For PHP, atom-beautify follow coding standards from php-codesniffer.
Install php-codesniffer:
sudo apt install php-codesniffer
After, you can see the default Standards with the command phpcs -i
. The output will be like:
The installed coding standards are PEAR, Squiz, MySource, PHPCS, Zend, PSR1 and PSR2
CodeIgniter has your own Coding Standard and the CodeIgniter-for-PHP_CodeSniffer follow this rules.
We can install the CodeIgniter Standard as follow:
wget https://github.com/thomas-ernest/CodeIgniter-for-PHP_CodeSniffer/archive/master.zip
unzip master.php
Copy the src folder to the correct path:
sudo cp -r CodeIgniter-for-PHP_CodeSniffer-master/src/ /usr/share/php/PHP/CodeSniffer/Standards/CodeIgniter/
Now, the output of phpcs -i
will be:
The installed coding standards are PEAR, Squiz, MySource, PHPCS, Zend, PSR1, PSR2 and CodeIgniter
Linters
Node packages:
sudo npm -g install linter
sudo npm -g install htmlhint
sudo npm -g install csslint
sudo npm -g install jshint
Atom packages:
apm install linter
apm install linter-htmlhint
apm install linter-csslint
apm install linter-jshint
The Awesome
PHP Integrator is a powerful project that provides code analysis and utilities for PHP projects.
PHP Integrator uses composer to install the core and you need install the correct version corresponding to the php-integrator-base version.
composer global require php-integrator/core 2.1.1
PHP Integrator uses the project-manager to activate resources based by project.
Lets install the Atom packages:
apm install project-manager
apm install php-integrator-base
apm install php-integrator-linter
apm install php-integrator-annotations
apm install php-integrator-autocomplete-plus
apm install php-integrator-call-tips
apm install php-integrator-navigation
apm install php-integrator-tooltips
apm install php-integrator-refactoring
CodeIgniter
When you works on a CodeIgniter 3 project you can download this file https://raw.githubusercontent.com/natanfelles/codeigniter-phpstorm/master/phpstorm.php inside your project root.
After go to Atom and open the menu Packages > Project Manager > Edit Projects and configure your project like it:
{
title: "CodeIgniter 3 - Project"
group: "CodeIgniter"
paths: [
"/home/username/codeigniter3"
]
icon: "icon-flame"
devMode: false
php:
enabled: true
php_integrator:
enabled: true
phpVersion: 5.6
excludedPaths: [
"{0}/application/cache/",
"{0}/application/logs/",
"{0}/system/core/Controller.php",
"{0}/system/core/Model.php"
]
fileExtensions: [
"php"
]
settings:
"atom-beautify":
php:
cs_fixer_path: "php-cs-fixer"
default_beautifier: "PHPCBF"
phpcbf_path: "phpcbf"
standard: "CodeIgniter"
}
This tip will do PHP Integrator do not read the Controller.php
and Model.php
from the system folder, then it will use all the @property
from phpstorm.php
file. Also will use the CodeIgniter Standard on atom-beautify.
You can read more about it in Code Completion for CodeIgniter in phpStorm and here Excluding Folders From Indexing.
The atom-beautify also provides an option to create a custom .jsbeautifyrc file.
On CodeIgniter 4 you do not need do this config. PHP Integrator will works natively well.
Extras
Some extra packages that I like:
apm install atom-ternjs
apm install color-picker
apm install pigments
apm install git-plus
apm install docblockr
apm install bootstrap3-snippets
apm install file-icons
apm install editorconfig
apm install todo-show
apm install highlight-selected
apm install emmet
apm install minimap
apm install language-htaccess
apm install language-markdown
apm install linter-write-good
apm install linter-json-lint
apm install api-docs
apm install sync-settings
apm install atom-minify
Contribute
Your suggestions are welcome. Visit the CodeIgniter Community.
O que acha de me comprar um café? Comprar um café