Command Line Tool
Note: With Prado version 3.2.3 prado-cli.php location changed from framework
to bin directory. If you're using Prado 3.2.2 or earlier, replace bin with framework in examples below.
The optional prado-cli.php PHP script file in the bin
directory provides command line tools to perform various tedious takes in Prado.
The prado-cli.php can be used to create Prado project skeletons, create
initial test fixtures, and access to an interactive PHP shell.
To use the command line tool, you need to use your command prompt, command console
or terminal. In addition, PHP must be able to execute PHP scripts from
the command line.
If you type php path/to/bin/prado-cli.php, you should see
the following information. Alternatively, if you are not on Windows,
you may try to change the prado-cli.php into an executable
and execute it as a script
Command line tools for Prado 3.0.5.
usage: php prado-cli.php action <parameter> [optional]
example: php prado-cli.php -c mysite
Creates a Prado project skeleton for the given <directory>.
Create test fixtures in the given <directory>.
Runs a PHP interactive interpreter. Initializes the Prado
application in the given [directory].
The <parameter> are required parameters and [optional]
are optional parameters.
Creating a new Prado project skeleton
To create a Prado project skeleton, do the following:
- Change to the directory where you want to create the project skeleton.
- Type, php ../prado/bin/prado-cli.php -c helloworld, where
helloworld is the directory name that you want to create the project skeleton files.
- Type, php ../prado/bin/prado-cli.php -t helloworld to create
the test fixtures for the helloworld project.
The interactive shell allows you to evaluate PHP statements from the command line.
The prado-cli.php script can be used to start the shell and load an existing
Prado project. For example, let us load the blog demo project. Assume that your
command line is in the prado distribution directory and you type.
$: php bin/prado-cli.php shell demos/blog
The output should be
Command line tools for Prado 3.0.5.
** Loaded Prado application in directory "demos\blog\protected".
PHP-Shell - Version 0.3.1
(c) 2006, Jan Kneschke <email@example.com>
>> use '?' to open the inline help
Then we will get an instance of the Prado blog application, and from
that instance we want an instance of the 'data'
module. Notice that
at the end of the line suppresses the output
>> $app = Prado::getApplication();
>> $db = $app->getModule('data');
Lastly, we want to use the data module to query for a post with ID=1
. Notice that
we leave out the semicolon
to show the results.
There should not be any errors and you should see the following.
[ID] => 1
[AuthorID] => 1
[AuthorName] => 'Prado User'
[CreateTime] => 1148819691
[ModifyTime] => 0
[Title] => 'Welcome to Prado Weblog'
[Content] => 'Congratulations! You have successfully installed Prado Blog --
a PRADO-driven weblog system. A default administrator account has been created.
Please login with <b>admin/prado</b> and update your password as soon as possible.'
[Status] => 0
[CommentCount] => 0
Creating Active Record Classes
In the blog demo project, we need to create two Active Record classes, UserRecord and PostRecord, to represent data records in the users and posts tables, respectively. Active Record classes must extend from the base class ActiveRecord, and must define property names that matches with the field names of the corresponding table.
To better organize our directories, we create a new directory protected/database to hold the class files. We also modify our application configuration by inserting the following lines. It is equivalent to adding the directory protected/database to PHP include_path, which allows us to use the classes without explicitly including them.
<using namespace="Application.database.*" />
At the prompt, enter the following two commands to create UserRecord and PostRecord classes:
>> generate users Application.database.UserRecord
>> generate posts Application.database.PostRecord
Here we used the namespace format again to specify the classes to be created. The path Application.database.UserRecord indicates that we want the UserRecord class file to be protected/database/UserRecord.php.