Архив за 26 февраля 2013 - 7

В последнее время очень много говорится о схеме проектирования MVC, почти все популярные PHP-фреймворки уже давно перешли на эту схему. Что же касается Kohana, то начиная с версии 3, реализована иерархическая схема MVC – HMVC. Преимущества HMVC, всем понятны и мы не будем их здесь обсуждать.

Я, как желающий сменить статус «программиста-любителя» на «программиста-профессионала» решил, что уже достаточно изучил PHP и пора начинать работать с фреймворками, выбор моего самого первого фреймворка пал на именно Kohana, т.к. в нем реализуется HMVC, ну и вообще, его много хвалят за простоту.

В реальности все оказалось не просто, но особенно напрягало отсутствие изолированности триад MVC, триады разбивались на части и помещались в разные папки. В моем понимании, триада Model-View-Controller, должны быть изолированны от других триад, и находиться в одной папке, конечно, это можно было реализовать в Kohana, но все будет выглядеть очень «коряво» и запутанно. Еще было не понятно, почему не используется такая замечательная возможность PHP как пространство имен? Просмотрел еще несколько HMVC-фреймворков, но не к одному «душа не легла». Тогда я решил самостоятельно реализовать HMVC.

Сразу установил несколько директив:

  • Должно использоваться пространство имен
  • Автозагрузка классов работает на пространстве имен
  • В автозагрузку можно добавлять несколько папок
  • Каждое приложение имеет свою папку, на которую устанавливается автозагрузка
  • Каждая триада, в том числе и шаблоны, помещается в отдельную папку, соответственно, находятся в своем пространстве имен
  • По умолчанию, части MVC называются своими именами, Controller, Model и View, в каждой папке триады должна быть папка templates для шаблонов
  • Очень простой роутинг, URI просто разбивается в массив
  • Controller похож на Kohana_Controller
  • Controller получает информацию о том, что от него хотят в конструкторе, разбирает информацию URI-массива, после чего запускает метод action()
  • Метод action() проверяет методы объекта и запускает соответственно action_действие()
  • Генерация HTML, осуществляется методом контроллера render()

Потом добавил еще несколько:

  • Роутинг осуществляет расширенный контроллер, он разбивает URI в массив, сначала проверяет свои actions, если не находит, то ищет зарегистрированный контроллер
  • Результат работы модели сохраняется в контроллере, передается в View, при создании в методе контроллера render()
  • Метод action() публичный, созданный контроллер можно еще раз запустить и сгенерировать HTML
  • View похож на Kohana_View, для приложения, View необходимо «вытащить» в глобальное пространство имен при помощи наследования, заодно немного настроив, все остальные View должны быть наследниками глобального View
  • Контроллеры и View должны знать в какой папке и в каком пространстве имен они находятся, для этого они наследуются от специального класса NameSpaceAdapter, это нужно для правильного поиска View из контроллера, а так же папки templates из родительского View
  • Главный шаблон для каждой триады — template.php
  • Контроллеры автоматически передают в View свой action, на основании этой информации View из главного шаблона template.php самостоятельно ищет нужный шаблон action.php, поэтому не должно быть action_template(), это приведет к зацикливанию шаблонов
  • Для администрирования можно создать шаблоны с префиксом admin_action.php, которые можно вызвать только если установлена константа ADMIN

В итоге получилась небольшая HMVC структура, Model не играет роли, поэтому код не привожу, скажу только, что склоняюсь к статическому классу.
Читать полностью »

Новые доменные зоны типа ".cadillac," ".vegas," и ".music." появятся уже в апреле

Не так давно на Хабре появилась новость о том, что, может быть, в этом году уже появятся новые кирилличиеские доменные зоны вроде ".онлайн.сайт.рус.ком.дети.москва.католик.орг". Собственно, это предположение оказалось правдой, не только для кириллических доменных зон, но и для доменных зон на других языках. В этом году будут введены в работу сотни новых доменных зон.

Читать полностью »

image
Для умного дома есть куча решений, думаю, пора расширяться в сад.
Предлагаю обсудить проект контроллера для умной теплицы.

Добавлю, что все нижеперечисленное есть раздельными устройствами, не всегда совместимыми друг с другом, а нужна единая система, не требующая подгонки компонентов.

Вот примерный перечень того, что хочется видеть в конечном устройстве:

I этап — базовая функциональность
Минимум 8 каналов для датчиков (влажность воздуха внутри, температура воздуха внутри и снаружи, температура почвы внутри и снаружи, температура воздуха в канале вентиляции, освещенность, 1 резервный);
Отображение показаний датчиков на большом ЖК-дисплее (можно и LCD+тачскрин, но это вроде уже сильно дороже);
Управление исполнительными устройствами:
-открытие/закрытие кранов полива и залива бочек по заданной логике и показаниям датчиков;
-включение/выключение вентилятора (как в одну, так и в другую сторону) по показаниям датчиков и логике;
-включение ночью двух каналов LED-подсветки растений (синий и красный спектр) в разном соотношении, по заданному календарю.
Читать полностью »

Mail.ru Group объявила предварительные итоги прошедшего финансового года. Выручка компании выросла на 39% (21,15 млрд руб), EBITDA - на 38% (11,534 млрд руб), чистая прибыль - на 36% (8 499 млрд руб). 

По темпам роста Mail.Ru закончил год чуть хуже "Яндекса" (+42% EBITDA и +46% чистая прибыль), при этом в абсолютном выражении прибыль компаний почти одинакова (8,22 млрд у Яндекса). 

Читать полностью »

Ситуация, когда приложение и сервер баз данных находятся на одной и той же машине — очень редкая. Но по умолчанию в MongoDB авторизация отключена и вы не сможете соединить из вне. Мне не удалось найти краткую и понятную инструкцию, как это можно быстро исправить. Что и стало поводом для этого поста.Читать полностью »

Посещаемость «мертвого» Megaupload почти равна трафику Mega

Уже более года прошло с того времени, как был закрыт файлообменник Megaupload, а его сервера изъяты. Тем не менее, трафик на Megaupload до сих пор весьма велик, и в настоящее время он лишь немногим ниже трафика на новый сайт Доткома, файлообменник Mega.

Читать полностью »

Хотите увидеть, как смотрится современный интернет из под черных окошек DOSа? Не хотите ради этого собирать машинку на старом железе? DosBox вам поможет погрузиться в пучину классики.

Под катом инструкция по настройке DosBox'а для выхода в чистый интернет, примеры запуска 3х различных dos-браузеров (в том числе графических!), действительно МНОГО скриншотов, а так же, для нетерпеливых – архив с уже настроенным DosBox’ом (windows-версия) и старыми браузерами.
Читать полностью »

В прошлой части нашего материала, посвященного отчету Mandiant о группе APT1, мы говорили об основных выводах, которые были сделаны компанией по завершении расследования. Мы не будем повторять эту информацию еще раз, вы можете ознакомиться с ней здесь. В сегодняшнем посте мы поговорим о внутреннем устройстве этой атаки и схемах, которые были использованы для компрометации и вторжений в сети предприятий. Мы также отметим, что, c точки зрения возможностей вредоносного кода, эти атаки не представляют из себя ничего концептуально нового и схемы, которые были использованы, известны уже давно.

Читать полностью »

Сервис GetTaxi, получивший определенную закалку в Израиле, Великобритании и России запустил бета-версию в Нью-Йорке, сообщает пресс-служба компании. В "Большом Яблоке" известно множество мест, недоступных пешеходам, и городское такси - это единственная альтернатива личному автомобилю. Жёлтое такси Даунтауна давно вошло в мировую массовую культуру с фильмами и фотографиями. Примечательно, что на данный момент GetTaxi уклонилось от конкуренции с банальной вытянутой рукой.

Читать полностью »

В процессе разработки своего первого мобильного приложения мне очень не хватало опыта более продвинутых товарищей по рынку. Я решил заполнить эту информационную брешь. Перед вами первый из серии материалов, написанных на основе моего общения с создателями самых разных приложений. Критерии отбора – известность и наличие приложения в моем iPhone.
Разговор с создателями топовых iOS приложений: «Маркетинг – ничто, дизайн – всё». Path
Самыми оперативными откликнувшимися на мои запросы были создатели Path, им и слово. В следующих постах расскажем про приложения Twitter, 4square, Pedometer, Bump, Shazam и другие.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js