diff --git a/docs/guide-ru/start-workflow.md b/docs/guide-ru/start-workflow.md new file mode 100644 index 0000000..3d80e4a --- /dev/null +++ b/docs/guide-ru/start-workflow.md @@ -0,0 +1,93 @@ +Running Applications +==================== + +After installing Yii, you have a working Yii application that can be accessed via the URL `http://hostname/basic/web/index.php` or `http://hostname/index.php`, depending upon your configuration. This section will introduce the application's built-in fucntionality, how the code is organized, +and how the application handles requests in general. + +> Info: For simplicity, throughout this "Getting Started" tutorial, it's assumed that you have set `basic/web` + as the document root of your Web server, and configured, the URL for accessing + your application to be `http://hostname/index.php` or something similar. + For your needs, please adjust the URLs in our descriptions accordingly. + + +Functionality <a name="functionality"></a> +--------------- + +The basic application installed contains four pages: + +* the homepage, displayed when you access the URL `http://hostname/index.php` +* the "About" page +* the "Contact" page displays a contact form that allows end users to contact you via email +* the "Login" page displays a login form that can be used to authenticate end users. Try logging in + with "admin/admin", and you will find the "Login" main menu item will change to "Logout". + +These pages share a common header and footer. The header contains a main menu bar to allow navigation +among different pages. + +You should also see a toolbar at the bottom of the browser window. +This is a useful [debugger tool](tool-debugger.md) provided by Yii to record and display a lot of debugging information, such as log messages, response statuses, the database queries run, and so on. + + +Application Structure <a name="application-structure"></a> +--------------------- + +The most important directories and files in your application are (assuming the application's root directory is `basic`): + +``` +basic/ application base path + composer.json used by Composer, describes package information + config/ contains application and other configurations + console.php the console application configuration + web.php the Web application configuration + commands/ contains console command classes + controllers/ contains controller classes + models/ contains model classes + runtime/ contains files generated by Yii during runtime, such as logs and cache files + vendor/ contains the installed Composer packages, including the Yii framework itself + views/ contains view files + web/ application Web root, contains Web accessible files + assets/ contains published asset files (js, css) by Yii + index.php the entry (or bootstrap) script for the application + yii the Yii console command execution script +``` + +In general, the files in the application can be divided into two types: those under `basic/web` and those +under other directories. The former can be directly accessed from via HTTP (i.e., in a browser), while the latter can not and should not be. + +Yii implements the [model-view-controller (MVC)](http://wikipedia.org/wiki/Model-view-controller) design pattern, +which is reflected in the above directory organization. The `models` directory contains all [model classes](structure-models.md), +the `views` directory contains all [view scripts](structure-views.md), and the `controllers` directory contains +all [controller classes](structure-controllers.md). + +The following diagram shows the static structure of an application. + + + +Each application has an entry script `web/index.php` which is the only Web accessible PHP script in the application. +The entry script takes an incoming request and creates an [application](structure-applications.md) instance to handle it. +The [application](structure-applications.md) resolves the request with the help of its [components](concept-components.md), +and dispatches the request to the MVC elements. [Widgets](structure-widgets.md) are used in the [views](structure-views.md) +to help build complex and dynamic user interface elements. + + +Request Lifecycle <a name="request-lifecycle"></a> +----------------- + +The following diagram shows how an application handles a request. + + + +1. A user makes a request to the [entry script](structure-entry-scripts.md) `web/index.php`. +2. The entry script loads the application [configuration](concept-configurations.md) and creates + an [application](structure-applications.md) instance to handle the request. +3. The application resolves the requested [route](runtime-routing.md) with the help of + the [request](runtime-requests.md) application component. +4. The application creates a [controller](structure-controllers.md) instance to handle the request. +5. The controller creates an [action](structure-controllers.md) instance and performs the filters for the action. +6. If any filter fails, the action is cancelled. +7. If all filters pass, the action is executed. +8. The action loads a data model, possibly from a database. +9. The action renders a view, providing it with the data model. +10. The rendered result is returned to the [response](runtime-responses.md) application component. +11. The response component sends the rendered result to the user's browser. +