Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Phalcon Devtools

codecov Latest Version Software License Total Downloads Daily Downloads Build Status

Phalcon WebTools

What's Phalcon?

Phalcon PHP is a web framework delivered as a C extension providing high performance and lower resource consumption.

What are Devtools?

This tools provide you useful scripts to generate code helping to develop faster and easy applications that use with Phalcon framework.


  • PHP >= 7.2
  • Phalcon >= 4.0.0

Installing via Composer

Install composer in a common location or in your project:

curl -s | php

Create the composer.json file as follows:

    "require-dev": {
        "phalcon/devtools": "~4.1"

If you are still using Phalcon 3.4.x, create a composer.json with the following instead:

    "require-dev": {
        "phalcon/devtools": "^3.4"

Run the composer installer:

php composer.phar install

Build .phar

Install composer and box in a common location or in your project:

curl -s | php
bin/composer install

Build phar file phalcon-devtools

bin/box build -v
chmod +xr ./phalcon.phar
# Test it!
php ./phalcon.phar

Installation via Git

Phalcon Devtools can be installed by using Git.

Just clone the repo and checkout the current branch:

cd ~
git clone
cd phalcon-devtools

This method requires a little bit more of setup. Probably the best way would be to symlink the phalcon file to a directory in your PATH, so you can issue phalcon commands in each directory where a phalcon project resides.

cd phalcon-devtools
composer install
ln -s $(pwd)/phalcon /usr/bin/phalcon
chmod ugo+x /usr/bin/phalcon

If you get a "phalcon: command not found" message while creating the symlink, make an alias.

alias phalcon=/home/[USERNAME]/phalcon-devtools/phalcon


To get a list of available commands just execute following:

phalcon commands help

This command should display something similar to:

$ phalcon --help

Phalcon DevTools (4.1.0)

  Lists the commands available in Phalcon DevTools

Available commands:
  info             (alias of: i)
  commands         (alias of: list, enumerate)
  controller       (alias of: create-controller)
  module           (alias of: create-module)
  model            (alias of: create-model)
  all-models       (alias of: create-all-models)
  project          (alias of: create-project)
  scaffold         (alias of: create-scaffold)
  migration        (alias of: create-migration)
  webtools         (alias of: create-webtools)
  serve            (alias of: server)
  console          (alias of: shell, psysh)

Database adapter

Should add adapter parameter in your db config file (if you use not MySQL database).

For PostgreSQL it will be something like:

$config = [
  'host'     => 'localhost',
  'dbname'   => 'my_db_name',
  'username' => 'my_db_user',
  'password' => 'my_db_user_password',
  'adapter'  => 'Postgresql'

Configuration file

By creating config.json or any other configuration file called config in root project you can set options for all possible commands, for example:

  "migration" : {
    "migrations": "App/Migrations",
    "config": "App/Config/db.ini"
  "controller" : {
    "namespace": "Phalcon\\Test",
    "directory": "App/Controllers",
    "base-class": "App\\MyAbstractController"

And then you can use phalcon migration run or phalcon controller SomeClass and those commands will be executed with options from file. Arguments provided by developer from command line will overwrite existing one in a file.


Phalcon Developer Tools is open source software licensed under the New BSD License.
© Phalcon Framework Team and contributors