Сегодня 25 ноября, понедельник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
RMCreative.ru - Блог
RMCreative.ru - Блог
Голосов: 1
Адрес блога: http://rmcreative.ru/feed/
Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL
 

Как хранить упорядоченный список в базе данных

2015-02-15 17:50:53 (читать в оригинале)

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

Имеется возможность загрузки фото в альбомы. Нужно реализовать возможность упорядочивать фото в пределах альбома. Автор уже хранит порядок в поле order, но его напрягает, что при перетаскивании какой-либо из картинок нужно обновлять order у фотографий всего альбома.

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

Если же операция достаточно частая, можно схитрить и хранить order как decimal. В этом случае при вставке или перемещении фото между двумя другими необходимо обновить только order непосредственно перемещаемой записи.

Если мы перемещаем фото C и засовываем его между фото A и фото B, то значение order для него вычисляется как

C.order = A.order + (B.order - A.order) / 2;

UPD: из за ограничений точности следует проверять, влезет ли в базу очередное значение. Если нет — пересчитывать order. Даже несмотря на то, что от пересчётов мы не избавились, их частота сократилась для худшего случая на порядок.



YiiGist - каталог расширений Yii

2015-02-04 18:44:45 (читать в оригинале)

До этого момента у Yii не было нормального каталога пакетов. Команда Yii занимается новой версией сайта, но пока не всё готово и релизить нельзя. Официально мы рекомендовали использовать packagist.org и искать там "yii". Это более-менее работало, но было не совсем удобно. Думаю, поэтому сообщество запустило неофициальный проект YiiGist.

YiiGist позволяет зайти используя GitHub и пометить один или несколько репозиториев как пакет Yii 1 или Yii 2. Все помеченные пакеты доступны в каталоге. Есть поиск, информация вытягивается как из GitHub, так и из packagist.

http://yiigist.com/

Как вам?



История Yii

2015-02-02 16:10:08 (читать в оригинале)

Prado

В июне 2004-го Qiang Xue релизнул первую версию фреймворка PRADO. Вдохновение он черпал из Apache Tapestry, Borland Delphi и Microsoft ASP.NET.

Примерно в это же время Zend затеяли конкурс по переходу на PHP5, известный также как gophp5. Qiang переписал фреймворк на PHP 5 и выиграл конкурс.

В то время проект хостился на SourceForge. В середине 2005 Wei Zhuo помог с i18n и l10n, что вылилось в версию 2.0.

В мае 2005 было решено переписать проект, включив в него новые фишки Microsoft ASP.NET 2.0. В апреле 2006 была выпущена версия 3.0. Начиная с неё команда занималась, по большей части, качеством кода и его стабильностью.

PRADO всё ещё жив и используется относительно активно.

Yii

В октябре 2006 Qiang анонсировал альфу Yii на форумах PRADO.

Третьего декабря 2008 вышла версия 1.0.0. Много всего было взято из PRADO: ActiveRecord, i18n, l10n и так далее. Также вдохновение черпалось из RoR (соглашения и некоторые фичи AR), symfony1 (фильтры и плагины) и Joomla (модули и перевод сообщений).

Yii 1.0.0 был гораздо быстрее остальных фреймворков, обладающих сходной функциональностью и сообщество быстро разрослось.

В январе 2010 вышел Yii 1.1, давший нам построитель форм, реляционные запросы AR, готовый каркас для unit-тестов и многое другое.

Я присоединился к команде в 2010. В конце года мы начали обсуждать Yii 1.2 не прекращая разрабатывать 1.1. В мае 2011 было решено перейти на новые версии PHP и поправить архитектурные ошибки. То есть делать сразу 2.0. Тогда же был сделан первый коммит в тогда ещё секретный репозиторий.

В мае 2013 секретные код был выложен на всеобщий обзор. В октябре 2014 состоялся первый стабильный релиз Yii 2.0.



С Yii 1.1 на Yii 2.0, часть 3: приложения

2015-01-13 06:45:37 (читать в оригинале)

В 1.1 был только один шаблон приложения, который можно было развернуть через yiic webapp после того, как вы скачаете сам фреймворк. Команда копировала шаблон приложения из директории фреймворка в указанную вами директорию.

В 2.0 шаблоны, как и всё остальное, ставятся через Composer. Ничего предварительно скачивать не нужно. Команда напоминает команду из 1.1, разве что указывается из какого пакета ставить шаблон:

composer create-project --prefer-dist yiisoft/yii2-app-basic my/dir/basic

Стандартных шаблона два: basic и advanced. Есть возможность делать свои. Например, я сделал minimal. Начать изучение фреймворка лучше с basic. Это не значит, что данный шаблон чем-то хуже advanced, просто он больше похож на 1.1:

assets — классы-конфиги asset-ов
commands — консольные команды
config — конфиги
controllers — контроллеры
mail — шаблоны для писем
models — модели
runtime — логи и другие временные данные
tests — тесты
vendor — зависимости, вытягиваются Composer-ом
views — шаблоны для веб
web — вебрут
    assets — уже опубликованные asset-ы
    index.php — входной файл
./yii — входной файл для консольного приложения, аналог yiic из 1.1

Присутствуют директории, которых в 1.1 не было: assets, mail, vendor. Assets хранит классы, описывающие подключение CSS и JavaScript для веб-приложения. В mail хранятся шаблоны для писем, vendor заполняется Composer-ом и лезть туда руками не стоит.

Некоторые директории из 1.1 отсутствуют. Стоит отметить components, extensions, messages и migrations. Директория extensions более не нужна. Расширения ставятся через Composer и автоматически попадают в vendor. messages и migrations автоматически создаются по мере необходимости. В components нет нужды. В 2.0 можно раскладывать классы в любые директории. Они будут загружаться автоматически, если их namespace соответствует. Если вам без components не уютно, можно создать.

Ещё одним важным отличием от 1.1 является то, что index.php располагается не в корне приложения, а в директории web. То есть в качестве webroot надо указывать именно директорию web. Весь код при этом не будет видно через веб, что более безопасно. В 1.1 приходилось делать подобную структуру вручную каждый раз.

Реструктуризация создаёт некоторые проблемы на shared-хостинге. Если вам можно загружать файлы выше webroot, достаточно переименовать web в название webroot на вашем сервере. Если загружать выше webroot нельзя (что не очень часто), придётся переложить index.php на уровень выше и поправить в нём пути. То есть фактически привести всё к 1.1.

Advanced отличается тем, что разделяет код на несколько приложений, каждое со своим входным файлом в расчёте на несколько доменов. Окружения реализованы через локальные конфиги. Также в нём имеется готовая регистрация и восстановление пароля и готовая модель User, привязанная к базе данных. Всё это описано в руководстве. В остальном шаблоны схожи.

← С Yii 1.1 на Yii 2.0, часть 2: Composer



Yii 2.0.2

2015-01-13 05:58:16 (читать в оригинале)

Выпустили версию 2.0.2, являющуюся патч-релизом и полностью обратно совместимую. В неё вошли около 40 исправлений и мелких улучшений.

Полный анонс читайте на хабре



Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


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