diff options
| author | xue <> | 2006-09-23 01:51:57 +0000 | 
|---|---|---|
| committer | xue <> | 2006-09-23 01:51:57 +0000 | 
| commit | a5467e842316daf6a8a4345740f05a9731167ce1 (patch) | |
| tree | 0a982dd52df5c682fd2de8f9b22137471cee2dbe /demos/quickstart | |
| parent | 9af56fd93ed071d86f14296cec618073f6c0941a (diff) | |
merge from 3.0 branch till 1435.
Diffstat (limited to 'demos/quickstart')
4 files changed, 192 insertions, 0 deletions
diff --git a/demos/quickstart/protected/controls/TopicList.tpl b/demos/quickstart/protected/controls/TopicList.tpl index 6a335442..5e46bd44 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>
 @@ -34,6 +35,7 @@      <li><a href="?page=Configurations.Templates3">Templates: Part III</a></li>
      <li><a href="?page=Configurations.AppConfig">Application Configurations</a></li>
      <li><a href="?page=Configurations.PageConfig">Page Configurations</a></li>
 +    <li><a href="?page=Configurations.UrlMapping">URL Mapping (Friendly URLs)</a></li>
  </ul>
  </div>
 diff --git a/demos/quickstart/protected/pages/Configurations/UrlMapping.page b/demos/quickstart/protected/pages/Configurations/UrlMapping.page new file mode 100644 index 00000000..22cb866a --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/UrlMapping.page @@ -0,0 +1,75 @@ +<com:TContent ID="body" >
 +
 +<h1>URL Mapping (Friendly URLs)</h1>
 +
 +<com:DocLink ClassPath="System.Web.TUrlMapping" />
 +
 +<p>Using the <tt>TUrlMapping</tt> module different URLs can be
 +mapped into any existing Prado pages or services. This allows
 +the application to use nice looking and friendly URLs.
 +</p>
 +
 +<p>
 +The <tt>TUrlMapping</tt> module allows aributary URL path to be mapped to a
 +particular service and page class. This module must be configured
 +before a service is initialized, thus this module should be configured
 +globally in the <a href="?page=Configurations.AppConfig">application configuration</a>
 +file and before any services.
 +</p>
 +
 +<p>The mapping format is as follows.
 +<com:TTextHighlighter Language="xml" CssClass="source">
 +<module id="friendly-url" class="System.Web.TUrlMapping">
 +  <url pageClass="ClassName" pattern="regexp" parameters.id="regexp" />
 +</module>
 +</com:TTextHighlighter>
 +</p>
 +
 +<p>The <tt>PageClass</tt> set the name of class that the matched URL will
 +be requested.</p> The <tt>Pattern</tt> and <tt>Parameters</tt> attribute
 +values are regular expression patterns that
 +determine the mapping criteria. The <tt>Pattern</tt> property takes
 +a regular expression with parameter names enclosed between a left brace '<tt>{</tt>'
 +and a right brace '<tt>}</tt>'. The pattens for each parameter can be set
 +using <tt>Parameters</tt>attribute collection.
 +For example,
 +<com:TTextHighlighter Language="xml" CssClass="source">
 +<url pageClass="Pages.ShowArticles" pattern="articles/{year}/{month}/{day}"
 +     parameters.year="\d{4}" parameters.month="\d{2}" parameters.day="\d+" />
 +</com:TTextHighlighter>
 +</p>
 +The example is equivalent, using regular expression only, to
 +<com:TTextHighlighter Language="xml" CssClass="source">
 +<url pageClass="Pages.ShowArticles">
 +<![CDATA[
 +	articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)
 +]]>
 +</url>
 +</com:TTextHighlighter>
 +<p>
 +In the above example, the pattern contains 3 parameters named "<tt>year</tt>",
 +"<tt>month</tt>" and "<tt>day</tt>". The pattern for these parameters are,
 +respectively, "<tt>\d{4}</tt>" (4 digits), "<tt>\d{2}</tt>" (2 digits)
 +and "<tt>\d+</tt>" (1 or more digits).
 +</p>
 +
 +<p>For example, an URL "<tt>http://example.com/index.php/articles/2006/07/21</tt>" will be matched
 +and valid.  However, "<tt>http://example.com/index.php/articles/2006/07/hello</tt>" is not
 + valid since the "<tt>day</tt>" parameter pattern is not satisfied.
 + In the default <tt>TUrlMappingPattern</tt> class, the pattern is matched against the
 +<b>path</b> property of the URL only. For example, only the
 +"<tt>/index.php/articles/2006/07/21</tt>" portion of the URL is considered and the rest
 +is ignored.
 + </p>
 +
 +
 +<p>The parameter values are available through the standard <tt>Request</tt>
 +object. For example, <tt>$this->Request['year']</tt>.
 +</p>
 +
 +<p>The URL mapping are evaluated in order they are place and only the first mapping that matches
 + the URL will be used. Cascaded mapping can be achieved by placing the URL mappings
 + in particular order. For example, placing the most specific mappings first.
 + </p>
 +
 +</com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/CommandLine.page b/demos/quickstart/protected/pages/GettingStarted/CommandLine.page new file mode 100644 index 00000000..c2050246 --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/CommandLine.page @@ -0,0 +1,107 @@ +<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><parameter></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. Notice that
 +a <b>semicolon</b> at the end of the line <b>supresses the output</b>.
 +
 +<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>. Notice that
 +we <b>leave out the semicolon</b> to show the results.
 +<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>
  | 
