Command Line Tool
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.
Requirements
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.
Usage
Inside you application's protected directory, If you type ./vendor/bin/prado-cli,
you should see the following information.
Command line tools for Prado 4.2.0.
usage: php prado-cli.php command[/action] <parameter> [optional]
example: php prado-cli.php cache/flush-all
example: prado-cli help
example: prado-cli cron/tasks
The following options are available:
-d=<folder> Loads the configuration.xml/php from <folder>
-q=<level> Quiets the output to <level> [1..3]
The following commands are available:
- cache Allows you to flush the cache(s).
cache/index Displays the cache modules that can be flushed.
cache/flush Flushes the specified ICache modules.
cache/flush-all Flushes all application ICache modules.
- help Provides help information about shell commands.
help/index Displays available commands or detailed command information.
- shell Provides PHP Interactive Shell Interpreter.
shell/index Runs a PHP interactive interpreter after Initializing the Prado application.
- activerecord Provides Active Record skeleton generation.
activerecord/generate Generate Active Record skeleton for <table> to <output>. May also generate [soap] properties.
activerecord/generate-all Generate Active Record skeleton for all Tables to <output>. May also generate [soap] properties.
Generated Classes are named like the Table with optional [Prefix] and/or [Suffix].
[Overwrite] is used to overwrite existing Files.
To see the help of each command, enter:
prado-cli help <command-name>
The <parameter> are required parameters and [optional]
are optional parameters.
Interactive Shell
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 4.2.0.
Psy Shell v0.11.2 (PHP 7.4.28 — cli) by Justin Hileman
>>>
Then we will get an instance of the Prado blog application, and from
that instance we want an instance of the
'data' module.
>> $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.
>> $db->queryPostByID(1)
There should not be any errors and you should see the following.
PostRecord#1
(
[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.
<paths>
<using namespace="Application.database.*" />
</paths>
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.