Command line in CodeIgniter 4, Spark

Video thumbnail

We came from how to generate test data with CodeIgniter 4, but, CodeIgniter being the robust framework it is, has other tools like a very easy-to-use command line interface (CLI) known as spark

If you have been working with CodeIgniter 4, you surely already know that it is not just a lightweight framework, but a modern tool designed to speed up development. And this is where Spark, the framework's official command line, comes into play.

In my experience, Spark is not an optional add-on: it is a fundamental piece in the modern development of any application. Creating migrations, models, and other components from the terminal not only saves time but also considerably improves the workflow.

In this guide, I am going to explain what Spark is, how to use it, and what the most important commands are for working efficiently in CodeIgniter 4.

What is Spark and why it is fundamental in CodeIgniter 4

Spark is the CLI (Command Line Interface) tool included in CodeIgniter 4. It is a file named spark located in the root of the project that allows you to run predefined framework commands.

In simple terms:

$ php spark

This command shows you the full list of available commands.

The interesting thing is that Spark does not just execute basic tasks: it allows you to automate key processes such as generating migrations, seeds, models, controllers, and even starting a development server.

When I started using it constantly, I noticed a radical change in productivity. Stopping manual file creation and moving to generating them from the CLI reduces errors and maintains a consistent structure in the project.

Where the spark file is located

The spark file is in the root of the project. You don't need to install anything additional if you already have your CodeIgniter 4 project correctly configured.

From the main project folder, you can run any command using:

$ php spark command:name

How the CLI works in CodeIgniter 4

The CLI works as an automation layer over the framework. Internally, it executes command classes that you can extend.

That is, you don't just use existing commands; you can also create your own. This is especially useful in large projects where you need custom repetitive tasks.

spark is nothing more than a file located in the root of our project named "spark" and it allows running a series of preset commands; of course, we can extend the commands offered by the framework itself by programming our own; but that is another topic; in short, we can divide the commands we can use into three groups:

Commands to generate files:

  1. Create migrations, we will talk about this in another chapter, but they are nothing more than files that store the structure of a table that the framework will map to the database.
  2. Generate seeds or seeders for test data.

Commands to handle processes:

  1. Start a development server, in case you don't want to use Apache or other servers supported by the framework.
  2. Run or rollback migrations.
  3. Clear cache.
  4. Manage the database.
  5. Execute migrations and seeds.

Commands to get project information:

  1. List of commands.
  2. List of project routes.

How to use Spark in CodeIgniter 4 step by step

Among other commands you can see by running at the project level:

$ php spark

This will show:

  • List of commands
  • Description
  • Available options

Don't worry if you don't understand the purpose of these functions; later we will see the operation of each of these elements in detail.

Most used commands

To provide you with a list of the commands; I recommend you copy it and read it a few times a day to familiarize yourself with these commands, which are the most used when developing in CodeIgniter:

  1. php spark serve: To start a development server.
  2. php spark make:migration: To generate a migration file.
  3. php spark migrate: To run a migration and related tasks like rollback to revert migrations.
  4. php spark routes: To view the application's routes.

Most important Spark commands

Here are the commands you will use most in real development.

$ php spark serve

Starts an internal development server.

$ php spark serve

Ideal if you don't want to configure Apache or Nginx manually.

In small projects or quick tests, this command is more than enough to work comfortably.

$ php spark make:migration

Generates a migration file.

$ php spark make:migration MigrationName

Migrations allow defining the table structure that will then be mapped to the database.

This command is one of the most important in the modern workflow. Keeping the database versioned through migrations facilitates teamwork and avoids inconsistencies.

$ php spark migrate and rollback

To run migrations:

$ php spark migrate

To revert them:

$ php spark migrate:rollback

This allows you to move database versions forward or backward easily.

When working in active development, being able to rollback quickly avoids many headaches.

$ php spark routes

Shows the full list of project routes.

$ php spark routes

Extremely useful when the project grows and you need to verify how routes are defined.

Generating models, controllers, and seeds

Spark also allows:

$ php spark make:model
$ php spark make:controller
$ php spark make:seeder

This is where the power of the CLI is really felt. Instead of creating files manually, everything is generated following the official structure of the framework.

As I mentioned before, for me Spark is fundamental in modern development. Automating the generation of components is not just about convenience: it is standardization and efficiency.

Types of commands in Spark

We can divide commands into three large groups:

Commands to generate files

  • Migrations
  • Seeds
  • Models
  • Controllers
  • Custom commands

Commands for process management

  • Start development server
  • Run migrations
  • Revert migrations
  • Clear cache
  • Manage database

Project information commands

  • List of commands
  • List of routes
  • Environment information

Best practices using Spark in modern development

After working with multiple projects, these are my recommendations:

  • Use migrations from the start of the project.
  • Don't create files manually if a command exists to generate them.
  • Familiarize yourself with php spark by running it regularly.
  • Consider creating custom commands for repetitive tasks.

Spark is not just another tool: it is a central part of the professional workflow in CodeIgniter 4.

Frequently Asked Questions

  • What is Spark in CodeIgniter 4?
    • It is the official command line tool of the framework that allows running automated tasks.
  • Is it mandatory to use php spark serve?
    • No. You can use Apache, Nginx, or other servers. Spark serve is just a development option.
  • Can I create my own commands?
    • Yes. CodeIgniter 4 allows extending the CLI by creating custom commands.

Conclusion

The command line in CodeIgniter 4, Spark, is an essential tool for any developer who wants to work efficiently and professionally.

It allows you to automate tasks, maintain order in the project, and significantly improve the development flow.

If you are not yet using Spark constantly, I recommend you start today. Run:

$ php spark

And explore everything the framework puts at your disposal.

The next step is to learn about the entire folder and file structure of CodeIgniter 4.

Learn how to use the command line in CodeIgniter 4 with Spark. Discover essential commands like `php spark serve`, migrations, models, and routes to develop faster and more professionally.

I agree to receive announcements of interest about this Blog.

Andrés Cruz

ES En español