Yii PHP framework: создаём игровой сайт. Часть 1. Постановка задачи.

3 января, 2010
yii game site

Прежде всего, поздравляю всех с наступившим Новым Годом!

И этот год хочу начать с нового цикла статей об использовании PHP фреймворка под названием Yii.

В качестве примера я решил сделать игровой сайт, точнее сайт под партнерскую программу GameBoss. Для тех, кто первый раз слышит о GameBoss – это интернет магазин казуальных игр. Он предоставляет информацию об играх в XML формате, т.е. проблем с контентом у нас не будет ;)

Примечание. Хочу сразу предупредить. С Yii я начал работать совсем недавно. И, честно говоря, это можно считать первый сайт, который я делаю с использованием этого фреймворка. Поэтому, возможно, некоторые вещи будут сделаны не лучшим образом, и я буду рад любым замечаниям.

Чтобы вы лучше представляли конечный результат, я нарисовал несколько эскизов.

Главная страница сайта

sketch main yii game site

Страница с описанием конкретной игры.
Просмотр полноразмерных скриншотов будет с использованием Lightbox

sketch yii game site 2

Естественно, будут страницы архивов и жанров, для них эскизы я не рисовал, т.к. они практически полностью совпадают с главной страницей.

И, конечно, будет панель управления.

Рассмотрим требования к ней.

1) Импорт игр. Данные мы получаем от GameBoss в виде XML фида, т.е. нам необходимо их разобрать и сохранить в базе.

2) Редактирование и удаление игр. Возможность создания игр по-идее не нужна, т.к. все необходимые данные мы получим из XML фида. Кроме того, фид содержит ссылки на игры с партнерским id и создавать их вручную не очень удобно.

Со скриншотами ситуация немного сложнее. Фид содержит ссылки, на скриншоты, размещенные на сервере GameBoss, поэтому редактировать и удалять их мы не можем. В принципе, можно было бы добавить возможность закачивать свои собственные скриншоты, но чтобы не усложнять код я пока решил от неё отказаться. К тому же я совсем не уверен, что в реальной жизни кто-то будет этим заниматься. Изменять описания игр – другое дело.

3) Редактирование, удаление и создание жанров. Тут всё просто. В XML фиде партнерки жанры игр указаны в закодированной форме. Поэтому перед импортом необходимо вручную создать все жанры.

4) Редактирование данных администратора. К этим данным относятся: адрес XML фида (включает партнерский id), логин, пароль.

Возможность создания нескольких пользователей, на мой взгляд, смысла не имеет. Т.к. в этом случае может получиться, что часть игр будет импортирована с одним партнерским id, а часть – с другим, со всеми вытекающими отсюда последствиями :)
Хотя, если кому-то понадобиться – не проблема. В дистрибутиве Yii есть скрипт, который генерирует код для CRUD операций. Т.е. писать код для создания новых пользователей не нужно, мы просто отключим его.

Думаю, на этом с постановкой задачи можно заканчивать. Если есть вопросы или предложения, пишите.

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

Все разделы цикла.

  1. Yii PHP framework: создаём игровой сайт. Часть 1. Постановка задачи.
  2. Yii PHP framework: создаём игровой сайт. Часть 2. База данных и установка фреймворка.
  3. Yii PHP framework: создаём игровой сайт. Часть 3. Аутентификация.
  4. Yii PHP framework: создаём игровой сайт. Часть 4. Работа с жанрами игр.
  5. Yii PHP framework: создаём игровой сайт. Часть 5. Импорт игр.
  6. Yii PHP framework: создаём игровой сайт. Часть 6. Формируем страницы игр и жанров.
  7. Yii PHP framework: создаём игровой сайт. Часть 7. Работа с JavaScript и страницы игр.
  8. Yii PHP framework: создаём игровой сайт. Часть 8. Создаём виджеты.
  9. Yii PHP framework: создаём игровой сайт. Часть 9. Поиск ошибок.
  10. Yii PHP framework: создаём игровой сайт. Часть 10. Панель управления.
  11. Yii PHP framework: создаём игровой сайт. Часть 11. Человекопонятные URL.
  12. Архив с исходниками

Интересно почитать

Дизайн сайтов. Тенденции веб-дизайна

Качественные услуги по восстановлению бухучета, адекватные цены

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в PHP, Web разработка, Yii Комментарии (22) »

]]>

Комментарии (22)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

]]>
  1. Интересно, продолжай

  2. Надеюсь часть 2 будет скоро

  3. be3

    Вова, молодец как всегда +) С нетерпением жду следующих частей.

  4. А вот мне интересно: делали ли вы анализ и если делали, то какую документацию составляли (Vision, SRS и т.д.)? Если составляли, то интересны приемы составления аналитической документации и выявления требований.

    • Нет, документацию я не составлял.
      Дело в том, что у меня стоит задача не создать сайт, а поработать с фреймворком, выяснить насколько им удобно пользоваться.

      Поэтому я не могу сформулировать строгие требования к сайту. Если по ходу дела выясниться, что yii предоставляет какие-то возможности с которыми мне хотелось бы поиграться, то я попробую добавить соответствующий функционал.

      Например, слайдшоу (lightbox) я добавил потому что yii имеет встроенную поддержку jQuery. Тоже самое касается и выбора партнерки. Мне нужна была готовая база данных минимум с несколькими таблицами, чтобы можно было поработь со всеми типами отношений.

      Ну и, конечно, сыграло роль, что продажа казуальных игр в общем-то прибыльное дело :) Но, если я буду открывать партнерский сайт, то начну с анализа рынка, т.е. с интересов покупателей (ведь в этом случае цель будет не создание сайта, а продажи). И у меня есть подозрение, что результат такого анализа может оказаться самым неожиданным. Может быть окажется выгоднее сделать блог на WP об играх с неявной рекламой (партнерскими ссылками в тексте), чем просто делать очередной каталог игр…. а может быть и нет ;)

      Но, в любом случае у меня уже написана большая часть кода, и в общем-то понятно почему я слышал столько хороших отзывов о yii. Даже без использования кеширования сайт работает довольно быстро (во всяком случае по сравнению с распространенными CMS разница ощутимая).

      P.S. Эскизы нарисованы в основном исходя из данных, которые можно получить из XML фида партнерки.

      P.P.S. Если есть предложения, я буду рад их обсудить. Тема составления документации очень интересная.

      • Спасибо за столь развернутый ответ, не ожидал столько прочитать на свой небольшой вопрос ;)
        Я просто полюбопытствовал, поскольку сам очень интересуюсь анализом.
        Эта тема действительно очень интересная, а вот внятных и понятных руководств нет. Есть пара книг, но они как и вся аналитика иногда вгоняют в сон :)

        • Тут вы правы :) Есть очень много хороших книг об основах языков программирования (для начинающих), гораздо меньше об архитектуре софта и еще меньше об управлении разработкой и анализе требований.
          Причем часто в них рассматривают какой-то упрощенный пример, а на практике не понятно как все это использовать :) Может быть потому, что для всех более-менее сложных задач нужен индивидуальный подход?

        • Да, скорее всего большие проекты на практике не бывают тривиальными. И научится делать анализ для больших проектов можно только на своем опыте, набив кучу шишек ).
          Зато на маленьких проектах можно рассмотреть несколько подводных камней, которые можно обойти при анализе.

  5. Nulpatrol

    Скорей бы продолжение было. Сам однажды уже пытался изучить даный фреймворк. но что-то не пошло

  6. Да про yii уже много чего писали, что он быстрее всех фреймворков и пр. ништяки. Но допустим для его развертывания в инструкции приводятся UNIX команды, если не ошибаюсь =) Будем ставить Linux или под Win-ом это все решаемо?
    В любом случае, автору респект за отличные статьи!

    p.s. кстати, наброски интерфейса, можно, легко рисовать в сервисе iplotz.com, хотя сделанные в фотошопе смотрятся оригинальнее.

    • Нет, ставить линукс не обязательно. Все работает и под Win. Точнее, скрипты, которые генерируют код, написаны на php, поэтому работают на всех платформах.

      За ссылку на iplotz большое спасибо, я люблю экспериментировать с такими сервисами :)

      • Я имел ввиду вот это:
        "
        Запускаем yiic в консоли со следующими параметрами:

        % YiiRoot/framework/yiic webapp WebRoot/testdrive
        "
        http://yiiframework.ru/doc/guide/ru/quickstart.first-app

        Видимо чего то я не так делаю:

        C:\>v:\home\yii\www\framework\yiic webapp WebRoot\testdrive
        "php.exe" не является внутренней или внешней
        командой, исполняемой программой или пакетным файлом.

        В любом случае надеюсь получить ответ в следующей статье про yii =)

        • Следующую часть я опубликовал :)
          Судя по описанию ошибки, вам нужно добавить папку в которой находится php.exe в переменную PATH.

        • haiflive

          У тебя наверное денвер стоит?.
          В твоём случае нужно так:
          v:\usr\bin\php.exe v:\home\yii\www\framework\yiic.php webapp v:\home\yii\www\testdrive

          Или вообще просто скопируй всю от сюда v:\home\yii\www\framework\cli\views\webapp в нужную тебе папку

  7. aza

    Раздел Хит сезона

    Веб-страница недоступна.

    Веб-страница по адресу http://rotator.gameboss.ru/engine2/?sizetype=544×300&advert=30000&url=, возможно, временно недоступна или постоянно перемещена по новому адресу.

  8. отлично! не помешает узнать и об этом фреймворке, т.к. много о нем слышал. сейчас использую только CodeIgniter, поэтому с нетерпением жду ваших остальных частей!

  9. Sam

    Замечательно. Полноценных туториалов от и до по Yii пока не очень много.

  10. сейчас популярные самые: ZEND и Symfony…

    в будущих статьях хотелось бы услышать про сравнение фремворков, просто зачем использовать мало извесный фрейворк, если он очень замечательный ZEND и Symfony?

    • Я не против ZEND'а и Symfony. Просто каждый новый фреймворк создаётся с учётом каких-то недостатков предыдущих. Это не означает, что он будет лучше, но в каких-то ситуациях сможет упростить работу. Описание Yii мне понравилось и я решил попробовать сделать сайт, а заодно и в блоге об этом написать ;)

      Сравнение фреймворков я сделать не готов. Вообще, думаю, однозначно выбрать лучший не получится. Многое зависит от требований к проекту.

]]>

Оставить комментарий

* - обязательные для заполнения поля

]]>