Natan Felles


Creative Webmaster


Atom PHP Environment + CodeIgniter 3 & 4

Blog · desenvolvimento

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

Atom 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.