Добрый день, читатели!
Уже почти месяц веду разработку проекта на CodeIgniter 2.0 и к середине написания столкнулся с проблемой при написании администраторской части. Так сложилось что с «CI» знаком уже более 2-х лет, и еще не разу CodeIgniter меня не подвел в своих возможностях.
Сам проект у меня исчисляется 35 таблицами и писать администраторскую панель мне необходимо для «хомячков». Подсчитав приблизительные человеко-часы необходимые на разработку интерфейса + программной части, я пришел в дикий ужас. Энтузиазм немного поутих (проект мой личный). Вспоминая добрым словом хоть какой-то CRUD в старых версиях, я рискнул «спросить Гугл», авось повезет… И повезло!
Читать полностью »
Метка «mysql» - 19
Grocery CRUD, или как я облегчил себе жизнь на неделю
2012-03-26 в 17:06, admin, рубрики: codeigniter, crud, jQuery UI, mysql, php, метки: codeigniter, crud, jQuery UI, mysql, PHP[Arch Linux] Настраиваем связку Apache, Nginx, PHP и Percona DB
2012-03-22 в 19:31, admin, рубрики: Apache, arch, linux, mysql, nginx, php, Веб-разработка, Софт, метки: apache, arch, linux, mysql, nginx, PHPПосле переезда с Ubuntu на Arch появилась необходимость настроить данную связку, однако, в отличие от Ubuntu, под Arch подобного мануала всё-в-одном не нашлось. Собрав идеи с разных руководств, включая те, что были написаны под Ubuntu, и решил написать на хабр такой цельный гайд.
Сразу хочу сказать, что это базовая установка, без виртуальных хостов в количестве n-штук, просто настройка для локальной разработки.
XAMPP мне не подошёл просто по идейным соображениям.
Итак, приступим.
Предполагается, что yaourt у вас уже установлен и вы хотя бы немного умеете им пользоваться, а также настроено выполнение root-команд от своего пользователя (ставим пакет sudo, потом раскомментируем строчку "%wheel ALL=(ALL) ALL" в файле /etc/sudoers и релогинимся; при выполнении команд с sudo пароль вводим от своего пользователя, а не от root'a).
Также перед непосредственно установкой, убедитесь, что у вас подключены extra- и community-репозитории.
Для этого:
sudo nano /etc/pacman.conf
И проверяем, чтобы секции этих репозиториев выглядели аналогично.
[extra]
#SigLevel = PackageOptional
Include = /etc/pacman.d/mirrorlist
[community]
#SigLevel = PackageOptional
Include = /etc/pacman.d/mirrorlist
И синхронизируем списки пакетов.
sudo pacman -Sy
Настраиваем связку Apache, Nginx, PHP и Percona DB
2012-03-22 в 19:31, admin, рубрики: Apache, arch, linux, mysql, nginx, php, Веб-разработка, Софт, метки: apache, arch, linux, mysql, nginx, PHPПосле переезда с Ubuntu на Arch появилась необходимость настроить данную связку, однако, в отличие от Ubuntu, под Arch подобного мануала всё-в-одном не нашлось. Собрав идеи с разных руководств, включая те, что были написаны под Ubuntu, и решил написать на хабр такой цельный гайд.
Сразу хочу сказать, что это базовая установка, без виртуальных хостов в количестве n-штук, просто настройка для локальной разработки.
XAMPP мне не подошёл просто по идейным соображениям.
Итак, приступим.
Предполагается, что yaourt у вас уже установлен и вы хотя бы немного умеете им пользоваться, а также настроено выполнение root-команд от своего пользователя (ставим пакет sudo, потом раскомментируем строчку "%wheel ALL=(ALL) ALL" в файле /etc/sudoers и релогинимся; при выполнении команд с sudo пароль вводим от своего пользователя, а не от root'a).
Также перед непосредственно установкой, убедитесь, что у вас подключены extra- и community-репозитории.
Для этого:
sudo nano /etc/pacman.conf
И проверяем, чтобы секции этих репозиториев выглядели аналогично.
[extra]
#SigLevel = PackageOptional
Include = /etc/pacman.d/mirrorlist
[community]
#SigLevel = PackageOptional
Include = /etc/pacman.d/mirrorlist
И синхронизируем списки пакетов.
sudo pacman -Sy
Open source / Oracle vs Open Source. Ваше мнение?
2012-03-08 в 10:01, admin, рубрики: community, java, mysql, open source, oracle, метки: community, java, mysql, open source, oracle Прими участие в опросе! Подробности под катом.
В марте, но год назад, в интернете появилась картинка с результатами опроса участников конференции JavaOne. Цель исследования была в том, чтобы определить, как отразилась покупка Oracle'ом компании Sun Microsystems на взаимоотношениях с OpenSource-сообществом. Я подумал, что спустя год, можно повторить этот опрос, но уже в рамках хабра. Вопросы пришлось немного перефразировать, но думаю, что общий смысл мне удалось сохранить.
Open source / [Опрос] Oracle vs Open Source. Ваше мнение?
2012-03-08 в 10:01, admin, рубрики: community, java, mysql, open source, oracle, метки: community, java, mysql, open source, oracle- 23.16%
(41) - Продолжит снижаться популярность открытых проектов Oracle/Sun, таких как MySQL.
- 23.73%
(42) - Политика Oracle, в частности, судебный иск к Google, плохо отразится на Java.
- 16.38%
(29) - Цены на продукты, связанные с такими открытыми проектами, как MySQL, будут расти.
- 23.16%
(41) - Ларри Эллисон заслуживает того, чтобы его окунули в бочку с водой (dunk tank).
MySQL / [Из песочницы] Реализация иерархии — объединение Adjacency List и Materialized Path через one-to-many
2012-02-27 в 12:12, admin, рубрики: mysql, php, иерархические структуры, иерархия, метки: mysql, PHP, иерархические структуры, иерархия Хранение иерархии в MySQL довольно затертая тема, воскурив хабр неоднократно я тем не менее не нашел для себя оптимальной структуры, сочетающей легкость поддержки и удобство пользования. Велосипед изобрелся сам...
Adjacency List (AL) удобен:
- самоподдерживаемостью целостности данных (ON DELETE CASCADE)
- легкостью вставкипереноса веток (обновление затрагивает одно поле parent_id у одного элемента)
- Легкостью получения детей на 1 уровень вложенности
Но главные неудобства возникают при выборках:
- получение всех детей ветки (для меню с ограничением по уровнюЧитать полностью »
PHP / Много текста про практику работы с PHPUnit/DbUnit
2012-02-25 в 20:00, admin, рубрики: dbunit, mysql, php, phpunit, unit test, бд, костыль, модульное тестирование, метки: dbunit, mysql, PHP, phpunit, unit test, бд, костыль, модульное тестирование Доброго времени суток, друзья!
Хочу поделиться опытом по борьбе с PHPUnit/DbUnit в связке с MySQL. Далее небольшая предыстория.
Краткая предыстория
В процессе написания одного веб-приложения возникла необходимость тестировать код на PHP, интенсивно взаимодействующий с БД MySQL. В проекте в качестве фреймворка модульного тестирования использовался порт xUnit — PHPUnit. В результате было принято решение писать тесты для модулей, непосредственно взаимодействующих с базой, подцепив плагин PHPUnit/DbUnit. Дальше я расскажу о тех трудностях, которые возникли при написании тестов и о том, каким способом я их преодолел. В ответЧитать полностью »
MySQL / немного о SELECT… FOR UPDATE и GET_LOCK
2012-02-10 в 19:09, admin, рубрики: mysql, базы данных, метки: mysql, базы данных
Для примера рассмотрим такой случай.
У нас есть MySQL база, в которой есть таблица queue. В эту таблицу поступают задания для выполнения.
Задания должны распределяться между процессами. Одна и та же задача не должна попасть к разным процессам.
Для решения задачи можно воспользоваться SELECT … FOR UPDATE.
Каждый процесс для получения задачи будет выполнять вот такой запрос.SELECT id FROM queue WHERE is_run = 0 ORDER BY date_task ASC LIMIT 1 FOR UPDATE
И помечать эту полученную задачу как занятую.UPDATE queue SET is_run = 1 WHERE id = ?
Теперь рассмотрим диаграмму работы процессов.
Процессы выполняются последовательно. Получается, что FOR UPDATE блокируетЧитать полностью »
Nginx / [Из песочницы] MySQL в NGINX: использование блокирующих библиотек в неблокирующем сервере
2012-02-02 в 8:07, admin, рубрики: Новости, метки: mysql, nginx Как известно, при разработке высоконагруженных серверов часто применяется событийная модель работы с сокетами. Ключевым компонентом системы при этом является epoll (во FreeBSD и Windows есть свои решения, но остановимся на Линуксе). Функция epoll_wait, будучи единственным блокирующим вызовом, возвращает нам информацию обо всех сетевых событиях, которые нас интересуют. Подобным образом, конечно, работает и всем известный сервер NGINX.
Событийная модель программирования делает код весьма своеобразным, как будто выворачивает его наизнанку. Но эта проблема не так страшна. Есть другая проблема — использование в событийно-ориентированном кодеЧитать полностью »
Системное администрирование / BIND: храним зоны в mysql (Dynamically Loadable Zones — BIND DLZ)
2012-02-01 в 9:32, admin, рубрики: Новости, метки: BIND, dns, mysql
Возможность Berkeley Internet Name Daemon (BIND) хранить зоны DNS в базе mysql не шибко известна и крайне плохо документирована. Документация заморожена на моменте включения отдельного патча DLZ в основную ветку BIND, а это BIND 9.4.* и 2005-2006 годы. Я постараюсь хотя бы частично восполнить этот пробел, выложив под хабракатом рабочие на данный момент инструкции с примерами. Мое описание совершенно не претендует на полноту, но простейшую зону прописать позволит.
Отдельно хочу заметить, что DLZ поддерживает не только mysql, список поддерживаемых хранилищ также под хабракатом.
Начну со списка хранилищ, которые поддерживает DLZ:Файловая система — все данныеЧитать полностью »