<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://limb.nohau.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://limb.nohau.ru/feed.php">
        <title>Фремворк Limb - limb3_2007_3:ru:tutorials:shop</title>
        <description></description>
        <link>https://limb.nohau.ru/</link>
        <image rdf:resource="https://limb.nohau.ru/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-11-10T16:34:00+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step1&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step2&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step3&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-1&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-2&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-3&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-4&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step5&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step6&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step7&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8-1&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8-2&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step9&amp;rev=1289372570&amp;do=diff"/>
                <rdf:li rdf:resource="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step10&amp;rev=1289372570&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://limb.nohau.ru/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Фремворк Limb</title>
        <link>https://limb.nohau.ru/</link>
        <url>https://limb.nohau.ru/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step1&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг1. Более подробно о функциональности приложения</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step1&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг1. Более подробно о функциональности приложения

Составим небольшое ТЗ на наше приложение

Роли пользователей сайта

Типичные роли пользователей нашего приложения:</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step2&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг2. Запуск приложения. База данных. Базовые шаблоны</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step2&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг2. Запуск приложения. База данных. Базовые шаблоны

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

Мы предполагаем, что вы уже знакомы с процедурой создания каркаса приложения на базе пакета WEB_APP.</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step3&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг3. Создание и отображение списка товаров для администраторов</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step3&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг3. Создание и отображение списка товаров для администраторов

Часто используемые шаблоны

Пожалуй, мы начнем с создания шаблонов, которые будут использоваться на многих других шаблонах в панели управления и на фронтальной части. Это шаблоны:</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-1&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг4.1 Управление списком пользователей</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-1&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг4.1 Управление списком пользователей

Создание класса User

Реализация пользователей должна отвечать следующим требованиям:

	*  В системе не должно быть пользователей с одинаковыми логинами и email-адресами.</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-2&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг4.2 Аутентификация пользователей</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-2&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг4.2 Аутентификация пользователей

Хранение данных пользователя в сессии

Что такое toolkit?

Небольшое отступление...

Некоторые объекты являются особо популярными, и зачастую требуется иметь глобальный доступ к таким объектам в рамках всей системы (приложения). К таким объектам можно отнести Запрос (Request), Ответ (Response), Пользователь (User), Подключения к базам данных (DbConnection), различные фабрики (Factory) и т.д.…</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-3&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг4.3 Проверка прав доступа</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-3&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг4.3 Проверка прав доступа

Выбор способа реализации проверки

Проверку, может ли пользователь иметь доступ к тому или иному контроллеру, мы можем реализовать 2-мя способами:</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-4&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг4.4 Отображение профайла пользователя</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4-4&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг4.4 Отображение профайла пользователя

Различные способы передачи данных в WACT-шаблон

Для отображения информации по текущему пользователю необходимо передать объект пользователя в шаблон. Это можно сделать несколькими способами:</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг4. Защита панели управления от несанкционированного доступа</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step4&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг4. Защита панели управления от несанкционированного доступа

	*  Для защиты нашей панели от несанкционированного доступа нам необходимо ввести механизм авторизации пользователей. Наше приложение предусматривает разделение только на администраторов и покупателей. Поэтому мы решили отличать администраторов от покупателей только одним полем - is_admin.…</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step5&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг5. Отображение списка товаров для покупателей. Поиск товаров</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step5&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг5. Отображение списка товаров для покупателей. Поиск товаров

Последовательность наших действий будет следующей:

	*  Мы создадим контроллер</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step6&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг6. Работа покупателей с корзиной заказа</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step6&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг6. Работа покупателей с корзиной заказа

Общая схема этого шага будет выглядеть следующим образом:

	*  Корзина будет представлена классом</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step7&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг7. Регистрация пользователей</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step7&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг7. Регистрация пользователей

План действий

	*  Мы создадим контроллер ProfileController, который будет содержать действия register для самостоятельной регистрации покупателей и</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8-1&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг 8.1. Модель связанная с заказами</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8-1&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг 8.1. Модель связанная с заказами

Связи между классами

Наша модель по хранению заказов будет выглядеть следующим образом:

}

Поясним:</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8-2&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг 8.2. Отправка заказа</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8-2&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг 8.2. Отправка заказа

Что такое команды

Реализация действий контроллеров не обязательно должна находиться в самом контроллере. Limb3 содержит также специальный набор классов, который позволяет создавать отдельные классы для каждого действия. Такие классы называются</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг 8. Оформление и сохранение заказа в базе данных</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step8&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг 8. Оформление и сохранение заказа в базе данных

	*  Оформление заказа требует сохранения в базе данных связей между объектами. Поэтому мы решили выделить отдельную страницу, которая покажет принципы работы со связями при помощи пакета ACTIVE_RECORD.</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step9&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг9. Работа с заказами</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step9&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг9. Работа с заказами

Итак, наши пользователи могут отсылать заказы. Теперь наша задача - расширить панель управления так, чтобы администраторы могли просматривать список заказов, а пользователи - просматривать сделанные ими заказы.</description>
    </item>
    <item rdf:about="https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step10&amp;rev=1289372570&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-10T07:02:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Шаг10. Рекомендации по дальнейшему изучению</title>
        <link>https://limb.nohau.ru/doku.php?id=limb3_2007_3:ru:tutorials:shop:step10&amp;rev=1289372570&amp;do=diff</link>
        <description>Шаг10. Рекомендации по дальнейшему изучению

Надеемся, что у Вас хватило упорства дойти до этого шага, пройдя все остальные. Хочется верить, что Limb3 вам понравился, и вы рассмотрите его в качестве варианта основного фреймворка для вашей работы. Конечно, это приложение - еще не все, на что способен Limb3, но примера должно хватить, чтобы понять, куда двигаться в дальнейшем при создании своих проектов на базе Limb3.…</description>
    </item>
</rdf:RDF>
