From a5467e842316daf6a8a4345740f05a9731167ce1 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 23 Sep 2006 01:51:57 +0000 Subject: merge from 3.0 branch till 1435. --- demos/quickstart/protected/controls/TopicList.tpl | 2 + .../protected/pages/Configurations/UrlMapping.page | 75 +++++++++++++++ .../pages/GettingStarted/CommandLine.page | 107 +++++++++++++++++++++ .../protected/pages/GettingStarted/HelloWorld.page | 8 ++ 4 files changed, 192 insertions(+) create mode 100644 demos/quickstart/protected/pages/Configurations/UrlMapping.page create mode 100644 demos/quickstart/protected/pages/GettingStarted/CommandLine.page (limited to 'demos/quickstart') 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 @@
  • What is PRADO?
  • Installation
  • Creating First PRADO Application
  • +
  • Command Line Tool
  • Upgrading from v2.x and v1.x
  • @@ -34,6 +35,7 @@
  • Templates: Part III
  • Application Configurations
  • Page Configurations
  • +
  • URL Mapping (Friendly URLs)
  • 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 @@ + + +

    URL Mapping (Friendly URLs)

    + + + +

    Using the TUrlMapping module different URLs can be +mapped into any existing Prado pages or services. This allows +the application to use nice looking and friendly URLs. +

    + +

    +The TUrlMapping 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 application configuration +file and before any services. +

    + +

    The mapping format is as follows. + + + + + +

    + +

    The PageClass set the name of class that the matched URL will +be requested.

    The Pattern and Parameters attribute +values are regular expression patterns that +determine the mapping criteria. The Pattern property takes +a regular expression with parameter names enclosed between a left brace '{' +and a right brace '}'. The pattens for each parameter can be set +using Parametersattribute collection. +For example, + + + +

    +The example is equivalent, using regular expression only, to + + +\d{4})/(?P\d{2})/(?P\d+) +]]> + + +

    +In the above example, the pattern contains 3 parameters named "year", +"month" and "day". The pattern for these parameters are, +respectively, "\d{4}" (4 digits), "\d{2}" (2 digits) +and "\d+" (1 or more digits). +

    + +

    For example, an URL "http://example.com/index.php/articles/2006/07/21" will be matched +and valid. However, "http://example.com/index.php/articles/2006/07/hello" is not + valid since the "day" parameter pattern is not satisfied. + In the default TUrlMappingPattern class, the pattern is matched against the +path property of the URL only. For example, only the +"/index.php/articles/2006/07/21" portion of the URL is considered and the rest +is ignored. +

    + + +

    The parameter values are available through the standard Request +object. For example, $this->Request['year']. +

    + +

    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. +

    + +
    \ 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 @@ + +

    Command Line Tool

    +

    The optional prado-cli.php PHP script file in the framework +directory provides command line tools to perform various tendious taks 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

    +

    +If you type php path/to/framework/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 [optional] +example: php prado-cli.php -c mysite + +actions: + -c + Creates a Prado project skeleton for the given . + + -t + Create test fixtures in the given . + + shell [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:

    +
      +
    1. Change to the directory where you want to create the project skeleton.
    2. +
    3. Type, php ../prado/framework/prado-cli.php -c helloworld, where + hellowworld is the directory name that you want to create the project skeleton files.
    4. +
    5. Type, php ../prado/framework/prado-cli.php -t helloworld to create + the test fixtures for the helloworld project.
    6. +
    + +

    Interactive Shell

    +

    +The interactive shell allows you to evaluate PHP statements from te 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 framework/prado-cli.php shell demos/blog + +The output should be + +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 + +>> 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 +a semicolon at the end of the line supresses 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. + +>> $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 admin/prado and update your password as soon as possib +le.' + [Status] => 0 + [CommentCount] => 0 +) + +

    +
    \ 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
  • pages - base path storing all PRADO pages.
  • +
    +Tip:You may also use the framework/prado-cli.php +command line script +to create the Prado project directory structure. For example, type the command +php path/to/prado-cli.php -c helloworld in the directory +where you want to create the helloworld project. +
    +

    The three files that we need are explained as follows.

    -- cgit v1.2.3