Инструменты пользователя

Инструменты сайта


limb3_2007_4:ru:tutorials:basic:step1

Шаг1. Создание каркаса проекта и запуск приложения

Структура папок и файлов

Рекомендуем для начала ознакомиться с подробными инструкциями по установке проекта на базе Limb3. Скопируйте все содержимое из папки /skel пакета WEB_APP в директорию с вашим приложением, например my_app.

Итак, внутри папки вашего приложения будут следующие файлы и директории:

 my_app
 |
 +-/src - здесь мы разместим собственно код приложения
 |
 +-/template - папка, где находятся шаблоны приложения
 |
 +-/settings - здесь располагаются конфигурационные файлы
 |
 +-/var - папка для временных/изменяемых файлов (кеши, компилированные шаблоны и прочее).
 |
 +-/www - здесь будет находиться DocumentRoot приложения
 |   |
 |   |-index.php
 |   |-.htaccess
 |   `-favicon.ico
 |
 |-setup.php
 `-setup.override.php

Убедитесь, что веб-сервер имеет права на запись в папку var, которая находится в корне вашего приложения.

Настройка приложения.

Файл setup.php

Для инициализации приложения используется скрипт my_app/setup.php, в котором содержится различная конфигурационная информация.

<?php
// Включаем в include_path директорию проекта и директорию с Limb3 пакетами
// Эти строки можно удалить, если вы установили Limb3 через PEAR канал
set_include_path(dirname(__FILE__) . '/' . PATH_SEPARATOR . 
                 '/path/to/limb/parent/dir/' . PATH_SEPARATOR .
                 get_include_path());
 
// Служебная константа LIMB_VAR_DIR указывает на расположение временных/изменяемых файлов(различные кеши, компилированные шаблоны, временные файлы и т.д).
@define('LIMB_VAR_DIR', dirname(__FILE__) . '/var/');
 
// подключим наиболее часто используемые составляющие пакетов core и web_app
require_once('limb/core/common.inc.php');
require_once('limb/web_app/common.inc.php');
?>

Файл settings/db.conf.php

db.conf.php используется для хранения параметров подключения к базе данных. Для MySQL он будет выглядеть следующим образом:

<?php
$conf = array('dsn' => 'mysql://root:secret@localhost/limb_crud?charset=utf8');
?>

Для SQLite:

<?php
$conf = array('dsn' => 'sqlite://localhost/path/to/sqlite.db?charset=utf8');
?>

Файл settings/wact.conf.php

Это файл настройки шаблонной системы WACT, которую мы будем использовать для вывода данных.

<?php
$conf = array(
'forcescan' => 0,
'forcecompile' => 1
);
?>

forcescan указывает, необходимо ли заново каждый раз составлять словарь тегов шаблонной системы (полезно только при создании новых тегов, чего мы делать сейчас не будем) - поэтому значение 0.

Следующий параметр - это forcecompile, который указывает, нужно ли заново компилировать шаблон при каждом обращении. Пока мы поставим значение 1, так как нам придется работать с шаблонами. На рабочем сайте, естественно, это значение необходимо поменять на 0.

Запуск проекта

Попробуйте зайти на страницу проекта. Вы должны увидеть страницу с надписью «Default main page.» Если это так, значит все пока нормально.

Как работает приложение

DocumentRoot нашего приложения - это папка www.

Файл .htaccess

В папке www лежит файл .htaccess (см. ниже), который перенаправляет все запросы к index.php скрипту, если запрос не касается статичного контента (файла, директории и символической ссылки):

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?%{QUERY_STRING} [L]

Файл index.php

Cкрипт www/index.php, является единственной точкой входа в приложение:

<?php
require_once(dirname(__FILE__) . '/../setup.php');
require_once('limb/web_app/src/lmbWebApplication.class.php');
 
$app = new lmbWebApplication();
$app->process();
?>

По сути все приложение - это один единственный класс.

Что дальше?

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ___    ___  __  __     __  _      __
  / _ |  / _ ) \ \/ / __ / / | | /| / /
 / __ | / _  |  \  / / // /  | |/ |/ / 
/_/ |_|/____/   /_/  \___/   |__/|__/
 
limb3_2007_4/ru/tutorials/basic/step1.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)