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 View Comments

]]>
  • сейчас популярные самые: ZEND и Symfony...

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

    Сравнение фреймворков я сделать не готов. Вообще, думаю, однозначно выбрать лучший не получится. Многое зависит от требований к проекту.
  • Sam
    Замечательно. Полноценных туториалов от и до по Yii пока не очень много.
  • На полноту я не претендую :) , но о необходимом минимуме постараюсь рассказать :)
  • отлично! не помешает узнать и об этом фреймворке, т.к. много о нем слышал. сейчас использую только CodeIgniter, поэтому с нетерпением жду ваших остальных частей!
  • aza
    Раздел Хит сезона

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

    Веб-страница по адресу http://rotator.gameboss.ru/engine2/?sizetype=54..., возможно, временно недоступна или постоянно перемещена по новому адресу.
  • Этот сервер нам не нужен :) Картинки находятся на images.nevosoft.ru, а партнерская программа - partner.gameboss.ru
  • Да про 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....

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

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


    В любом случае надеюсь получить ответ в следующей статье про yii =)
  • 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 в нужную тебе папку
  • Следующую часть я опубликовал :)
    Судя по описанию ошибки, вам нужно добавить папку в которой находится php.exe в переменную PATH.
  • Nulpatrol
    Скорей бы продолжение было. Сам однажды уже пытался изучить даный фреймворк. но что-то не пошло
  • Будем следить!
  • А вот мне интересно: делали ли вы анализ и если делали, то какую документацию составляли (Vision, SRS и т.д.)? Если составляли, то интересны приемы составления аналитической документации и выявления требований.
  • Нет, документацию я не составлял.
    Дело в том, что у меня стоит задача не создать сайт, а поработать с фреймворком, выяснить насколько им удобно пользоваться.

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

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

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

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

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

    P.P.S. Если есть предложения, я буду рад их обсудить. Тема составления документации очень интересная.
  • Спасибо за столь развернутый ответ, не ожидал столько прочитать на свой небольшой вопрос ;)
    Я просто полюбопытствовал, поскольку сам очень интересуюсь анализом.
    Эта тема действительно очень интересная, а вот внятных и понятных руководств нет. Есть пара книг, но они как и вся аналитика иногда вгоняют в сон :)
  • Да, скорее всего большие проекты на практике не бывают тривиальными. И научится делать анализ для больших проектов можно только на своем опыте, набив кучу шишек ).
    Зато на маленьких проектах можно рассмотреть несколько подводных камней, которые можно обойти при анализе.
  • Тут вы правы :) Есть очень много хороших книг об основах языков программирования (для начинающих), гораздо меньше об архитектуре софта и еще меньше об управлении разработкой и анализе требований.
    Причем часто в них рассматривают какой-то упрощенный пример, а на практике не понятно как все это использовать :) Может быть потому, что для всех более-менее сложных задач нужен индивидуальный подход?
  • be3
    Вова, молодец как всегда +) С нетерпением жду следующих частей.
  • Надеюсь часть 2 будет скоро
  • Интересно, продолжай
blog comments powered by Disqus ]]>