Laravel — P21: Artisan Intro and Route List

Laravel Essentials: Exploring Artisan and Navigating Routes

I’ve teased the artisan utility a few times and now is the time to introduce it. We won’t go into it’s full functionality yet, instead we’ll build on it. The only command that we’ll look at in this article is the one that shows you your entire route list.

Artisan

Artisan is just a command line tool that exists inside the root of your application. So, each time that you install Laravel, you’ll get the artisan tool along with it. Open your folder and you’ll see it there.

 

If you navigate to the root directory in your terminal, you can type in the command php artisan and you’ll see a list of artisan commands appear.
dinocajic@Dinos-iMac laravel-tutorials % php artisan


Laravel Framework 9.43.0

Usage:
  command [options] [arguments]

Options:
  -h, --help            Display help for the given command. When no command is given display help for the list command
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
      --env[=ENV]       The environment the command should run under
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about                  Display basic information about your application
  clear-compiled         Remove the compiled class file
  completion             Dump the shell completion script
  db                     Start a new database CLI session
  docs                   Access the Laravel documentation
  down                   Put the application into maintenance / demo mode
  env                    Display the current framework environment
  help                   Display help for a command
  inspire                Display an inspiring quote
  list                   List commands
  migrate                Run the database migrations
  optimize               Cache the framework bootstrap files
  serve                  Serve the application on the PHP development server
  test                   Run the application tests
  tinker                 Interact with your application
  up                     Bring the application out of maintenance mode
 auth
  auth:clear-resets      Flush expired password reset tokens
 cache
  cache:clear            Flush the application cache
  cache:forget           Remove an item from the cache
  cache:table            Create a migration for the cache database table
 config
  config:cache           Create a cache file for faster configuration loading
  config:clear           Remove the configuration cache file
 db
  db:monitor             Monitor the number of connections on the specified database
  db:seed                Seed the database with records
  db:show                Display information about the given database
  db:table               Display information about the given database table
  db:wipe                Drop all tables, views, and types
 env
  env:decrypt            Decrypt an environment file
  env:encrypt            Encrypt an environment file
 event
  event:cache            Discover and cache the application's events and listeners
  event:clear            Clear all cached events and listeners
  event:generate         Generate the missing events and listeners based on registration
  event:list             List the application's events and listeners
 key
  key:generate           Set the application key
 make
  make:cast              Create a new custom Eloquent cast class
  make:channel           Create a new channel class
  make:command           Create a new Artisan command
  make:component         Create a new view component class
  make:controller        Create a new controller class
  make:event             Create a new event class
  make:exception         Create a new custom exception class
  make:factory           Create a new model factory
  make:job               Create a new job class
  make:listener          Create a new event listener class
  make:mail              Create a new email class
  make:middleware        Create a new middleware class
  make:migration         Create a new migration file
  make:model             Create a new Eloquent model class
  make:notification      Create a new notification class
  make:observer          Create a new observer class
  make:policy            Create a new policy class
  make:provider          Create a new service provider class
  make:request           Create a new form request class
  make:resource          Create a new resource
  make:rule              Create a new validation rule
  make:scope             Create a new scope class
  make:seeder            Create a new seeder class
  make:test              Create a new test class
 migrate
  migrate:fresh          Drop all tables and re-run all migrations
  migrate:install        Create the migration repository
  migrate:refresh        Reset and re-run all migrations
  migrate:reset          Rollback all database migrations
  migrate:rollback       Rollback the last database migration
  migrate:status         Show the status of each migration
 model
  model:prune            Prune models that are no longer needed
  model:show             Show information about an Eloquent model
 notifications
  notifications:table    Create a migration for the notifications table
 optimize
  optimize:clear         Remove the cached bootstrap files
 package
  package:discover       Rebuild the cached package manifest
 queue
  queue:batches-table    Create a migration for the batches database table
  queue:clear            Delete all of the jobs from the specified queue
  queue:failed           List all of the failed queue jobs
  queue:failed-table     Create a migration for the failed queue jobs database table
  queue:flush            Flush all of the failed queue jobs
  queue:forget           Delete a failed queue job
  queue:listen           Listen to a given queue
  queue:monitor          Monitor the size of the specified queues
  queue:prune-batches    Prune stale entries from the batches database
  queue:prune-failed     Prune stale entries from the failed jobs table
  queue:restart          Restart queue worker daemons after their current job
  queue:retry            Retry a failed queue job
  queue:retry-batch      Retry the failed jobs for a batch
  queue:table            Create a migration for the queue jobs database table
  queue:work             Start processing jobs on the queue as a daemon
 route
  route:cache            Create a route cache file for faster route registration
  route:clear            Remove the route cache file
  route:list             List all registered routes
 sail
  sail:install           Install Laravel Sail's default Docker Compose file
  sail:publish           Publish the Laravel Sail Docker files
 sanctum
  sanctum:prune-expired  Prune tokens expired for more than specified number of hours.
 schedule
  schedule:clear-cache   Delete the cached mutex files created by scheduler
  schedule:list          List the scheduled commands
  schedule:run           Run the scheduled commands
  schedule:test          Run a scheduled command
  schedule:work          Start the schedule worker
 schema
  schema:dump            Dump the given database schema
 session
  session:table          Create a migration for the session database table
 storage
  storage:link           Create the symbolic links configured for the application
 stub
  stub:publish           Publish all stubs that are available for customization
 vendor
  vendor:publish         Publish any publishable assets from vendor packages
 view
  view:cache             Compile all of the application's Blade templates
  view:clear             Clear all compiled view files

As you can see, there are a ton of commands. We’ll only look at one.

List the Routes

Go to your project’s root directory and type in the following command:

php artisan route:list
You should get something like this:
 GET|HEAD   / ............................................................... 
  POST       _ignition/execute-solution ignition.executeSolution › Spatie\Lar…
  GET|HEAD   _ignition/health-check ignition.healthCheck › Spatie\LaravelIgni…
  POST       _ignition/update-config ignition.updateConfig › Spatie\LaravelIg…
  GET|HEAD   about/name/{name}/age/{age} ..................................... 
  GET|HEAD   about/{name} .................................................... 
  GET|HEAD   about/{name}/{age} .............................................. 
  GET|HEAD   api/user ........................................................ 
  GET|HEAD   best-camera/{camera} ............................................ 
  GET|HEAD   cameras/{camera} ................................................ 
  GET|HEAD   car-elseif-directive/{year} ..................................... 
  GET|HEAD   car-if-directive/{year} ......................................... 
  GET|HEAD   car-switch-directive/{year} ..................................... 
  GET|HEAD   car/{make}/{model}/{option} ..................................... 
  GET|HEAD   cars ............................................................ 
  GET|HEAD   cars/my/favorites ............................................... 
  GET|HEAD   cars/{car} ...................................................... 
  GET|HEAD   cars/{car}/{cylinders} .......................................... 
  GET|HEAD   cars/{make}/{model}/{cylinders} ................................. 
  POST       component-layout ................................................ 
  GET|HEAD   component-layout-prep ........................................... 
  GET|HEAD   component-layout/contact ........................................ 
  GET|HEAD   components-breakdown ............................................ 
  GET|HEAD   components/breakdown-test ....................................... 
  GET|HEAD   computers/apple/macbook-pro ..................................... 
  GET|HEAD   countries/{country} ............................................. 
  GET|HEAD   countries/{country}/{state} ..................................... 
  ANY        here .................... Illuminate\Routing › RedirectController
  GET|HEAD   loops/for/{value} ............................................... 
  GET|HEAD   loops/foreach ................................................... 
  GET|HEAD   loops/foreach-loop-variable ..................................... 
  GET|HEAD   loops/foreach-loop-variable-nested .............................. 
  GET|HEAD   loops/forelse ................................................... 
  GET|HEAD   loops/while/{start}/{finish} .................................... 
  GET|HEAD   my-favorite-car ................................................. 
  GET|HEAD   my-favorite-car/with-htmlspecialchars ........................... 
  GET|HEAD   my-favorite-car/without-htmlspecialchars ........................ 
  GET|HEAD   sanctum/csrf-cookie sanctum.csrf-cookie › Laravel\Sanctum › Csrf…
  GET|HEAD   template-inheritance ............................................ 
  GET|HEAD   template-inheritance/contact .................................... 
  GET|HEAD   users/{name?} ................................................... 
  GET|HEAD   welcome .........................................................

It’s pretty evident that it displays all of the routes that we have in our web.php route file. Why didn’t we just check there? Sometimes, and you’ll see that soon enough, routes will not be as visible as you think they might be. When you create resource controllers, those routes are understood, but they’re not explicitly stated. It’s also cleaner to just look through the file than scrolling through your routes/web.php file.

It also includes routes from your routes/api.php file. This is where your API routes live. We haven’t covered API’s yet so we’re not going to go into it just yet, but know that it does exist.

Summary

We’re going to explore more artisan commands as we need them, and we will need them. For now, we quickly touched on using the artisan command line interface and even were able to display all of the routes that we previously made. Nothing out of the comfort zone yet.

Laravel Series

Continue your Laravel Learning.

Laravel — P20: Routing Methods and Redirects

A Guide to Routing Techniques and Redirect Strategies

Laravel – P20: Routing Methods & Redirects

I want to explain our routes/web.php file a little further and the kind of stuff that we can do there. We have been using our router as our controller as well for many instances.

Laravel — P21: Artisan Intro and Route List

Laravel Essentials: Exploring Artisan and Navigating Routes

Laravel – P21: Artisan Intro And Route List

Dive into Laravel with an intro to Artisan commands & route listing. Streamline your workflow & enhance app structure efficiently.

Laravel — P22: Named Routes

Unlocking the Power of Laravel: Mastering Named Routes

Laravel – P22: Named Routes

Elevate your Laravel projects with named routes for cleaner code and easier navigation. Discover the essentials in our guide.

Leave a Reply