Какой рейтинг вас больше интересует?
|
Главная /
Каталог блогов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 исправлений и мелких улучшений.
Полный анонс читайте на хабре
+1006 |
1094 |
ДеВаЧкА-НеФоРмАлКа |
+989 |
1001 |
White_Rabbit_Pics |
+988 |
1000 |
Смотрим на жизнь сквозь сетку |
+934 |
1101 |
Вадим Гоц |
+928 |
932 |
Блог о подарках и праздниках |
-1 |
10 |
Блог Находчивого Продавца |
-1 |
459 |
alexfox2011 - BLOG.I.UA |
-2 |
3 |
Деньги в интернете |
-5 |
992 |
Allendy.ru - экономический портал |
-6 |
729 |
Натяжные потолки Херсон |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.