|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера 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 исправлений и мелких улучшений.
Полный анонс читайте на хабре
|
| ||
|
+1241 |
1261 |
Robin_Bad |
|
+1175 |
1263 |
Futurolog |
|
+1090 |
1094 |
MySQL Performance Blog |
|
+1028 |
1098 |
Ksanexx |
|
+1023 |
1097 |
Refinado |
|
| ||
|
-2 |
511 |
партнерки |
|
-3 |
605 |
Блог о раскрутке и монетизации сайта. |
|
-3 |
86 |
Mandalaй.ru |
|
-4 |
589 |
Блог Демона |
|
-4 |
17 |
Выводы простого человека |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.
