summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes1
-rw-r--r--buildscripts/texbuilder/pages.php1
-rw-r--r--demos/quickstart/protected/controls/TopicList.tpl1
-rw-r--r--demos/quickstart/protected/pages/GettingStarted/CommandLine.page105
-rw-r--r--demos/quickstart/protected/pages/GettingStarted/HelloWorld.page8
-rw-r--r--demos/quickstart/themes/PradoSoft/style.css58
-rwxr-xr-xframework/prado-cli.php2
7 files changed, 175 insertions, 1 deletions
diff --git a/.gitattributes b/.gitattributes
index b25e8bc4..fab56204 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -983,6 +983,7 @@ demos/quickstart/protected/pages/Fundamentals/lifecycles.vsd -text
demos/quickstart/protected/pages/Fundamentals/objectdiagram.gif -text
demos/quickstart/protected/pages/Fundamentals/objectdiagram.vsd -text
demos/quickstart/protected/pages/GettingStarted/AboutPrado.page -text
+demos/quickstart/protected/pages/GettingStarted/CommandLine.page -text
demos/quickstart/protected/pages/GettingStarted/HelloWorld.page -text
demos/quickstart/protected/pages/GettingStarted/Installation.page -text
demos/quickstart/protected/pages/GettingStarted/Introduction.page -text
diff --git a/buildscripts/texbuilder/pages.php b/buildscripts/texbuilder/pages.php
index 9b8a97ad..4d285162 100644
--- a/buildscripts/texbuilder/pages.php
+++ b/buildscripts/texbuilder/pages.php
@@ -9,6 +9,7 @@ $pages['Getting Started'] = array(
'GettingStarted/AboutPrado.page',
'GettingStarted/Installation.page',
'GettingStarted/HelloWorld.page',
+ 'GettingStarted/CommandLine.page',
'GettingStarted/Upgrading.page'
);
diff --git a/demos/quickstart/protected/controls/TopicList.tpl b/demos/quickstart/protected/controls/TopicList.tpl
index 1302338d..677a727e 100644
--- a/demos/quickstart/protected/controls/TopicList.tpl
+++ b/demos/quickstart/protected/controls/TopicList.tpl
@@ -7,6 +7,7 @@
<li><a href="?page=GettingStarted.AboutPrado">What is PRADO?</a></li>
<li><a href="?page=GettingStarted.Installation">Installation</a></li>
<li><a href="?page=GettingStarted.HelloWorld">Creating First PRADO Application</a></li>
+ <li><a href="?page=GettingStarted.CommandLine">Command Line Tool</a></li>
<li><a href="?page=GettingStarted.Upgrading">Upgrading from v2.x and v1.x</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/pages/GettingStarted/CommandLine.page b/demos/quickstart/protected/pages/GettingStarted/CommandLine.page
new file mode 100644
index 00000000..7d439fac
--- /dev/null
+++ b/demos/quickstart/protected/pages/GettingStarted/CommandLine.page
@@ -0,0 +1,105 @@
+<com:TContent ID="body" >
+<h1>Command Line Tool</h1>
+<p>The optional <tt>prado-cli.php</tt> PHP script file in the <tt>framework</tt>
+directory provides command line tools to perform various tendious taks in Prado.
+The <tt>prado-cli.php</tt> can be used to create Prado project skeletons, create
+initial test fixtures, and access to an interactive PHP shell.
+</p>
+<h2>Requirements</h2>
+<p>
+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.
+</p>
+
+<h2>Usage</h2>
+<p>
+If you type <tt>php path/to/framework/prado-cli.php</tt>, you should see
+the following information. Alternatively, if you are not on Windows,
+you may try to change the <tt>prado-cli.php</tt> into an executable
+and execute it as a script</p>
+<com:TTextHighlighter Language="cli" CssClass="source">
+Command line tools for Prado 3.0.5.
+usage: php prado-cli.php action <parameter> [optional]
+example: php prado-cli.php -c mysite
+
+actions:
+ -c <directory>
+ Creates a Prado project skeleton for the given <directory>.
+
+ -t <directory>
+ Create test fixtures in the given <directory>.
+
+ shell [directory]
+ Runs a PHP interactive interpreter. Initializes the Prado
+ application in the given [directory].
+</com:TTextHighlighter>
+
+<p>The <b>&lt;parameter&gt;</b> are required parameters and <b>[optional]</b>
+are optional parameters. </p>
+
+<h2>Creating a new Prado project skeleton</h2>
+
+<p>To create a Prado project skeleton, do the following:</p>
+<ol>
+ <li>Change to the directory where you want to create the project skeleton.</li>
+ <li>Type, <tt>php ../prado/framework/prado-cli.php -c helloworld</tt>, where
+ <tt>hellowworld</tt> is the directory name that you want to create the project skeleton files.</li>
+ <li>Type, <tt>php ../prado/framework/prado-cli.php <b>-t</b> helloworld</tt> to create
+ the test fixtures for the <tt>helloworld</tt> project.</li>
+</ol>
+
+<h2>Interactive Shell</h2>
+<p>
+The interactive shell allows you to evaluate PHP statements from te command line.
+The <tt>prado-cli.php</tt> 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 <tt>prado</tt> distribution directory and you type.
+</p>
+<p>
+<com:TTextHighlighter Language="cli" CssClass="source">
+$: php framework/prado-cli.php shell demos/blog
+</com:TTextHighlighter>
+The output should be
+<com:TTextHighlighter Language="cli" CssClass="source">
+Command line tools for Prado 3.0.5.
+** Loaded Prado appplication in directory "demos\blog\protected".
+PHP-Shell - Version 0.3.1
+(c) 2006, Jan Kneschke <jan@kneschke.de>
+
+>> use '?' to open the inline help
+
+>>
+</com:TTextHighlighter>
+Then we will get an instance of the Prado blog application, and from
+that instance we want an instance of the <tt>'data'</tt> module.
+
+<com:TTextHighlighter Language="cli" CssClass="source">
+>> $app = Prado::getApplication();
+
+>> $db = $app->getModule('data');
+</com:TTextHighlighter>
+Lastly, we want to use the data module to query for a post with <tt>ID=1</tt>.
+<com:TTextHighlighter Language="cli" CssClass="source">
+>> $db->queryPostByID(1)
+</com:TTextHighlighter>
+There should not be any errors and you should see the following.
+<com:TTextHighlighter Language="cli" CssClass="source">
+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 possib
+le.'
+ [Status] => 0
+ [CommentCount] => 0
+)
+</com:TTextHighlighter>
+</p>
+</com:TContent> \ No newline at end of file
diff --git a/demos/quickstart/protected/pages/GettingStarted/HelloWorld.page b/demos/quickstart/protected/pages/GettingStarted/HelloWorld.page
index 780c92b9..97d4f72d 100644
--- a/demos/quickstart/protected/pages/GettingStarted/HelloWorld.page
+++ b/demos/quickstart/protected/pages/GettingStarted/HelloWorld.page
@@ -27,6 +27,14 @@ where each directory is explained as follows. Note, the above directory structur
<li><tt>pages</tt> - base path storing all PRADO pages.</li>
</ul>
+<div class="tip">
+<b class="tip">Tip:</b>You may also use the <tt>framework/prado-cli.php</tt>
+<a href="?page=GettingStarted.CommandLine">command line script</a>
+to create the Prado project directory structure. For example, type the command
+<tt>php path/to/prado-cli.php -c helloworld</tt> in the directory
+where you want to create the <tt>helloworld</tt> project.
+</div>
+
<p>
The three files that we need are explained as follows.
</p>
diff --git a/demos/quickstart/themes/PradoSoft/style.css b/demos/quickstart/themes/PradoSoft/style.css
index 782697ae..d7e94032 100644
--- a/demos/quickstart/themes/PradoSoft/style.css
+++ b/demos/quickstart/themes/PradoSoft/style.css
@@ -517,4 +517,62 @@ pre code
background-color:#ffffee;
font-family: "Courier New", Courier, mono;
margin: 0.2em;
+}
+
+div.tip, div.info, div.note
+{
+ border:1px solid #0cf;
+ padding:1em;
+ margin: 1em 2em;
+ background-color: #eff;
+}
+
+div.info
+{
+ border-color: #32CD32;
+ background-color: #EBFFCE;
+}
+
+div.note
+{
+ border-color: Orange;
+ background-color: #FFF5E1;
+}
+
+div b.tip
+{
+ font-size: 1em;
+ padding-right: 0.5em;
+}
+
+img.figure
+{
+ display: block;
+ margin: 1em auto;
+ background-color: White;
+ padding: 15px;
+ border: 1px solid #eee;
+}
+
+div.caption
+{
+ text-align: center;
+}
+
+table.tabular, table.tabular td, table.tabular th
+{
+ border: 1px solid #ccc;
+ border-collapse: collapse;
+ padding: 0.3em;
+}
+
+table.tabular
+{
+ margin: 1em auto;
+ width: 80%;
+}
+
+table.tabular td
+{
+ padding: 0.75em;
} \ No newline at end of file
diff --git a/framework/prado-cli.php b/framework/prado-cli.php
index 58e274fe..894d8adc 100755
--- a/framework/prado-cli.php
+++ b/framework/prado-cli.php
@@ -33,7 +33,7 @@ restore_exception_handler();
//run it;
PradoCommandLineInterpreter::run($_SERVER['argv']);
-if(strtolower($_SERVER['argv'][1])==='shell')
+if(count($_SERVER['argv']) > 1 && strtolower($_SERVER['argv'][1])==='shell')
include_once(dirname(__FILE__).'/3rdParty/PhpShell/php-shell-cmd.php');
class PradoCommandLineInterpreter