Категория: Статьи

OAuth / Twitter Auth адаптер для Zend Framework

По , в субботу 23 апреля 2011 3:57 вечера

Продолжается работа (медленно) на моем новом щебетать -приложения. За следующие несколько праздников я надеюсь получить импульс собирается снова о проекте (в том Несмотря прекрасная погода в настоящее время). Во всяком случае, моя следующая задача заключалась в создании аутентификации адаптер для Zend Framework . Я провел рабочую Войти реализации, но с падением Auth адаптер для Zend Framework, казалось, заманчивое предложение, поэтому я создал его ....

(Я не собираюсь идти через OAuth или регистрации вашего приложения с щебет, есть сотни руководств и довольно простой процесс во всяком случае.)
Продолжить 'OAuth / Twitter Auth адаптер для Zend Framework "чтение»

"Вход с использованием Вконтакте" с использованием Zend Framework

По , четверг 17 марта 2011 1:07 утра

Несмотря на все ненавидят щебет на данный момент, я решил создать новую щебет -приложения. Будучи человеком, который управляет несколькими счетами (как личные, так и для моей благотворительной деятельности) Я был нуждающихся инструмент для когда-то, что я просто получить время для письма (более того, что в ближайшем будущем ...).

Я читал на Zend_Oauth_Consumer и как она может быть использована для получения разрешения для работы с использованием щебет OAuth . Все хорошо, у меня есть ключ доступа, и я могу весело сообщение прочь от имени пользователя. Там есть много ресурсов, там, чтобы сделать это так, я не буду отверстие человек.

Следующим шагом было позволить людям вернуться на сайт, войти в систему и изменить свою учетную запись. Именно здесь я достиг небольшая проблема. Использование примеров кода на веб-сайтах означало, что я должен был бы щебет спрашивать меня для авторизации доступа еще раз для каждой Логин, не хорошо. Сканирование через рамки я не мог видеть ничего, что позволило бы мне просто запросить аутентификацию. То есть нельзя сказать, ее не было, но там, похоже, не будет механизма проверки подлинности, которые могут вызывать, не зная, маркер доступа уже.

Альтернативы для реализации сайте основе войдите или как-то хранить маркер доступа пользователя на клиенте (зашифрованные конечно). Ни один из этих казалось хорошей / подходящее решение.

Продолжить чтение "Войти на Twitter" использованием Zend Framework »»

Zend Certified Engineer (ZCE) 5,3

По , четверг 30 сентября 2010 9:00 вечера

С официальным релизом от инженера Zend сертифицированных (ZCE) программа для 5,3 Я думал, что я даю свое быстрое впечатление, что я думал о экзамен.

Немного предыстории о себе: я впервые познакомился с PHP около 7 лет назад и работал профессионально в PHP с 2006 года. Сейчас я работаю для захватывающих запуска называется Brightpearl базирующаяся в Бристоле, Великобритания , создавая интегрированные CRM, бухгалтерские и электронной коммерции программного обеспечения. Я не ранее полученных любым из предыдущих квалификаций ZCE. Я в настоящее время развиваются в серии 5.2.x и не использовал какие-либо конкретные 5,3 особенностей (Я жду Zend Framework 2 и доктрина 2) в своих проектах развития.
Продолжить чтение 'Zend Certified Engineer (ZCE) 5.3 "»

Быстрый старт Symfony DI (Dependency Injection) Учебник

По , в субботу 14 августа 2010 2:21 вечера

Что такое Dependency Injection (DI)?

Вложение зависимости является метод, который позволяет слабосвязанных объектов в приложении. Как правило, если объект требует доступа к функциональности другого было бы экземпляр внутренне приводит к сильно связанных систем. Осуществляя внедрение зависимости мы вводим необходимые объекты готовы к использованию (иногда также называется инверсией контроля - МОК). Рассмотрим следующий пример:

  <? PHP
 лицо, принимающее решения класса {
     общественных makeDecision функции (массив $ параметров) {
         / / Необходимо адаптера БД
         $ Др = новый DecisionParameters ();
         $ = $ ParameterScore др-> getScore ($ параметров);
         / * ...  Еще несколько логики принятия решений ...  * /
         возвращения ($ parameterScore> 50);
     }
 } 

Этот фрагмент кода, как говорят, тесно связан с объектом DecisionParameters. Переписывая выше в слабосвязанных моды мы бы что-то вроде ....

  <? PHP
 лицо, принимающее решения класса {
     частные $ _dp;
     публичную функцию __construct ($ др) {
         $ Это-> _dp = $ др;
     }
     общественных makeDecision функции (массив $ параметров) {
         $ = $ ParameterScore этом-> _dp-> getScore ($ параметров);
         / * ...  Еще несколько логики принятия решений ...  * /
         возвращения ($ parameterScore> 50);
     }
 } 

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

  $ = Выбор новых лицо, принимающее решения ();
 Эхо $ выбор-> makeDecision (массив ('усилие' => 'низкий', 'возвращение' => 'высокий')); 

Теперь становится:

  $ Др = новый DecisionParameters ();
 $ = Выбор новых лицо, принимающее решения ($ др);
 Эхо $ выбор-> makeDecision (массив ('усилие' => 'низкий', 'возвращение' => 'высокий')); 

Эта ситуация становится все более болезненным, как число зависимостей для класса увеличивается, и что делать, если зависимостей сами зависимости? Это может очень быстро стать кошмаром объект администрации! Введите внедрение зависимости контейнеров (или рамки) ...
Продолжить чтение "Быстрый старт Symfony DI (Dependency Injection) Учебник" »

Голая Zend_Layout и Zend_View

По , во вторник 10 августа 2010 11:47 вечера

В этой статье я смотрю на использовании Zend_Layout и Zend_View наряду с простыми фронт-контроллера, чтобы показать, как можно начать разделение бизнес-логики и представления в вашем приложении. Весь код доступен на GitHub:
Голая Zend_Layout и Zend_View на GitHub .

Продолжить 'Голый Zend_Layout и Zend_View' чтения »

Zend Framework Пер Настройки модуля Layout - Follow Up

По , вторник 16 февраля 2010 8:48 вечера

В продолжение к моему предыдущему сообщению в настройках модуля на основе макета для Zend Framework , я обновил код конфигурации требуют меньше, чем раньше (не, что он требует более, что несколько строк в конфигурации приложения!).
Продолжите читать 'Zend Framework Пер Настройки модуля Layout - Follow Up "»

Создание URL в Zend Custom View Helper

По , четверг 28 января 2010 11:01 вечера

Это может показаться простым, но я был стучать головой пытается создать URL в пользовательских помощник вида в Zend Framework . У меня есть таблицу маршрутизации, которая получает модуль из суб-домен в использовании, поэтому я не мог использовать простую жестко URL.

Продолжить 'Создание URL в Zend Custom View Helper "чтения»

Маршрут запросов на sitemap.xml обычаю контроллер / действие

По , в среду 6 января 2010 12:13 утра

Для того, чтобы прямые запросы для / sitemap.xml для пользовательских контроллера и действия в Zend Framework, приложение просто добавьте следующее в вашем application.ini или альтернативного конфигурационного файла (например, я использую navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = индекс
 resources.router.routes.sitemap.defaults.action = карта сайта

Пример кода для вывода можно увидеть путем создания действия в соответствующий контроллер (например, моя карта сайта находится в индексе контроллер, карта сайта действия):

 < PHP
 Класс IndexController
     расширяет Zend_Controller_Action
 {
     / **
      * Оказывает карта сайта на основе Zend_Navigation установки
      * /
     общественных sitemapAction функции ()
     {
    	 Эхо $ это-> Вид-> навигация () -> карта сайта ();
    	 $ Это-> Вид-> раскладка () -> disableLayout ();
    	 $ Это-> _helper-> ViewRenderer-> setNoRender (истина);
     }
 }

Sitemaps может быстро и легко быть созданы с помощью Zend_Navigation , большой краткое руководство (и вообще очень полезно для Zend Framework учебники) является Zend отливки - Динамическое создание меню сайта и панировочные сухари .

Управление Grid Computing использованием виртуальных сред - Часть 4

По , в пятницу 4 декабря 2009 11:59 вечера

Введение

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

В части 3 мы создали виртуальную машину обработки и настройки окна машины, чтобы стать времени простоя работников.

Запуск последней версии кода

Неизбежно после создания рабочих бизнес-логики будет меняться, ошибки будут найдены, быстрее более эффективный код будет выпускаться в результате чего ваши работники сидели обработки данных, используя старые вонючие код . Как же мы гарантируем, что мы всегда с использованием новейшая и самая лучшая версия нашего сценарии обработки?

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

Первый метод будет просто подключиться к нашей работе серверный элемент управления (через Samba, FTP, или подобный) и опустите последнюю версию кода. Не очень эффективно, но он будет делать эту работу. Позволяет улучшить что-то, а как насчет создания Rsync сценарий и использовании, что каждый раз вместо этого? Кроме то, что о вводе наших последних обработки скрипта в подрывной проверить код сначала, а потом просто обновляем нашу код при каждом запуске ( запускали )?

В конце концов мы могли бы закончить с Баш скрипт (названный крон каждые 10 минут), который выглядит, как просто, как это:

  #! / Бен / ш
 пс, если топор | Grep-V GREP | GREP PHP > / Dev / нуль
 затем
     эхо "Работа в настоящее время обработки, выход"
 еще
     эхо "Работа не работает, начните прямо сейчас"
     кд / путь / к / рабочей / копии
     запускали
     PHP yourJobProcessingScript.php
 Fi 

Теперь мы можем быть уверены, что с каждым запуском мы определенно установлена ​​последняя кода. Мы обеспечения этого путем обновления нашей базы кода каждый раз, когда мы выполняем запуска и снижения сетевого трафика только на передачу файлов различия между нашей сети.

В моей демонстрации установки, я сделал именно так, как выше. Subversion был установлен на моем сервере обработки работу, и я просто вытащил последний код от «рабочий» филиала с помощью "запускали". Я также добавил теги номер версии моей обработки скрипта, который был возвращен в базу данных как часть дал результаты. Таким образом, я мог видеть, что мой код обновляется каждый раз, когда я скопировал мой ствол в то отделение работника, что я определенно установлена ​​последняя обработка сценария.

На основании последних данных

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

Держите вы кони там! Что делать, если источники данных ОГРОМНЫЙ? Ну это действительно случай, какой объем данных может идти речь? Это может быть более экономически эффективным, чтобы установить дополнительный емкий жесткий диск в каждую машину, чем приобрести дополнительный сервер обработки. Это вопрос о бюджете и составляет до бизнеса, чтобы решить. Это, может быть, что ваш источники данных настолько велик, что его просто невозможным сохранить этот объем данных в ваших машин работника. В таком случае, что бы вы сделали? Ну, мы могли смотреть на вызов локального сервера данных, но это может вызвать проблемы с сетью. В этом случае сетка системы, такие как это может стать нереальным включить в офисной среде. Он также может быть то, что вы можете посмотреть в альтернативных стратегий работы, например, только позвонив в рабочие между 8 вечера и 6 утра каждую ночь, и / или дросселирования источника данных запросов.

Двигаемся дальше скажем нашим данным источников составит 100 ГБ данных. Ну да, это довольно много данных для перемещения по сети на обновление. Как бы мы гарантируем, что у нас есть последняя копия данных в этом случае? Rsync есть возможность, но лично я думаю, запустив ваш последний источник данных на сервере обработки заказа и настройкой как мастер в репликации (с хороший длинный журнал бен), может быть путь:

репликации При установке каждого из ваших работников в качестве рабов для управления заданиями сервер обновлений к источникам данных будет сочиться вниз приятно, чтобы ваши работники, не огромный рост сетевой активности (то есть, если вы выполняете огромную обновления данных, и все ваши рабочие удар в сразу). Это имеет преимущества по сравнению с Rsync в том, что вы не получите длинную паузу перед каждой работе; как обновления баз данных, MySQL демона на вашем рабочем будем постоянно обновлять свои данные, а обработка продолжается.

Это, как я создал мой демонстрация сервера. Чтобы настроить репликацию я последовал за руководство на сайте MySQL ( Настройка репликации ) и в течение 20 минут у меня был Начальное работника тиражирование управления заданиями серверов данных. За каждый дополнительный работник настройки репликации и процесс работал каждый раз, когда В. М. был скопирован.

Резюме

В этой части статьи мы рассмотрели, как легко и безболезненно это сохранить ваш код обработки вплоть до настоящего времени using Rsync или subverion (SVN), чтобы сделать работу и уменьшить сетевой трафик, в то же time. Мы также обсудили, как сохранить ваши данные в источнике информации последнюю дату, что позволяет ему сочиться вниз к каждой из ваших работников. Таким образом, мы области обеспечения того, чтобы мы в ногу с бизнес-логикой и информации в нашей системе сетки офиса. Там, очевидно, будет бесчисленные альтернативы выполнению этих задач, но здесь были два простых примера, чтобы показать, насколько легко решение прибыть.

Следующий раз

В заключительной части этой серии, метко назвал часть 5 , мы обсудим развертывании этой системы. Я буду резюмировать, что было изучено и то, что мне удалось создать.

Управление Grid Computing использованием виртуальных сред - Часть 3

По , в пятницу 4 декабря 2009 11:37 вечера

Введение

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

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

Настройка рабочего - или LIMP сервере

Следующим шагом в этом процессе, чтобы настроить виртуальные рабочие. Для этого я буду использовать установки CentOS использовании VirtualBox. Я собираюсь установить MySQL и PHP на сервере, также известный как LIMP (Li ммк, м ySQL, Р л.с.) Сервера (я, возможно, сделали это имя вверх).

  • Установить VirtualBox на вашей машине окна (следуйте ссылке)
  • Скачать и установить CentOS (текущая версия 5.3) в пределах создаваемых виртуальных машин

Там нет смысла мне будет это там, наверное, 1000-х годах большое учебники там (ну ладно, вот один: Создание и Managing CentOS виртуальной машине под VirtualBox ). Важно отметить, я полагаю, является то, что я назвал свою виртуальную машину GridMachine.

Что касается моего выбора виртуализации клиентов и операционной системы, туда не такое уж большое веских причин для каждого варианта. VirtualBox является то, что я использую на моем домашнем компьютере и при поддержке трех основных операционных систем. Я выбрал CentOS как его хорошим стабильным ОС и я использую его на свой веб-сервер. Я очень верю в правильные инструменты для работы (хотя я подаю заявление "использовать быстрый и простой для вас" менталитет здесь), так что, если операционная система X работает ваш код быстрее и более эффективно использовать его вместо:)

Важно убедиться, что ваша VM использует DHCP, в противном случае для каждой новой виртуальной машины должны быть настроены отдельно, что то, что мы не want.By использованием DHCP нам не нужны для настройки сетевых параметров индивидуально для рабочего машин, DHCP вручит из IP-адресов для вас. Поэтому вы можете скопировать ваши виртуальные машины около офиса, не заботясь о настройке каждого из вверх (это улучшает масштабируемость и снижает работник администрации).

Процесс, который вы должны стремиться к достижению бы получить новую физическую машину, установить VirtualBox, а затем в значительной степени развернуть виртуальный образ, не более того. Это может быть мудрым, чтобы настроить все ваши работники в другой подсети, чтобы можно было хотя бы узнать, сколько машин работает. Вам также необходимо настроить машины на долгосрочную аренду или неограниченное аренды DHCP.

Как запустить Вакансии на работника

Это интересное направление и Есть несколько допустимых методов для обработки заданий на работника. Здесь я просто обсудить два наиболее очевидных:

  • Постоянно работает сценарий: сценарий, будь то скрипт или скрипт PHP выполняется один раз на работника и работает как часть бесконечного цикла. Я скидкой этот метод как один крах сценария и, возможно, ваши работники перестанут работать без какого-то вмешательства.
  • Cron основан выполнения скрипта: Каждые Х минут хрон демон стартует звонок на ваш сценарий, чтобы получить вещи, идущие. Без какой-либо проверки это может привести ко многим много копий ваших запущенных сценариев работника.

Мое решение было пойти с хрон который стартует скрипт каждые 10 minutes. Мой скрипт выполняет следующие задачи:

  1. Получить список процессов и GREP это для 'PHP'. Если не найден, то продолжить.
  2. Позвоните своему работы кода, в моем случае это было бы что-то PHP основанных
  3. Работник скрипт завершает свой бег
  4. Готовы идти снова на следующей соответствующий вызов

Мой Баш скрипт выглядит примерно так:

  #! / Бен / ш
 пс, если топор | Grep-V GREP | GREP PHP> / Dev / нуль
 затем
     эхо "Работа в настоящее время обработки, выход"
 еще
     эхо "Работа не работает, начните прямо сейчас"
     PHP yourJobProcessingScript.php
 Fi 

Примечание: эха почти полностью бессмысленным, но может помочь следующий человек, который приходит, чтобы попробовать и редактировать их.

На этом мы завершаем настройку работника виртуальной машине, быстро, просто и легко скопировать, к каждому новому часть оборудования, которое получено. 'Ум' сетки система действительно не в визуализированы ОС, ее все делать с код, созданный для обработки заданий, работу конфигурации, а в том, чтобы задание выполняется в случае необходимости (например, когда хозяин находится в режиме ожидания ).

Настройка ОС Windows для инициализации рабочих

Первой задачей является выработка команд, необходимых для запуска виртуальной машины из командной строки Windows. Если вы установили VirtualBox в папку по умолчанию, и вы назвали ваш рабочий GridMachine то команда требует, чтобы загрузить ваш работник является:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Однако, чтобы запустить сценарий в "безголовый" государство мы должны использовать:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = выкл 

Это приведет к запуску виртуальной машины без графического интерфейса пользователя и позволяет ему сохранить состояние изящно. Второй аргумент выключается RDP поэтому он не вступает в противоречие с окнами, RDP, или дать вам сообщение о том, на порту 3389. Имя виртуальной машины с учетом регистра!

Далее, мы должны установить окна вверх, чтобы начать наш рабочий В. М. раз машина была простаивать. Для этого (на Windows XP), вы должны будете пойти Пуск -> Все программы -> Стандартные -> Служебные -> Назначенные задания, как показано ниже:

запланированных задачах

Затем нажмите на "Добавить задание" с последующим просмотром, чтобы добавить пользовательские программы. Перейдите на VBoxManage сценарий и нажмите кнопку ОК. Расписание ваша задача для любого из вариантов (мы изменим это в минуту) и продолжить. После пропуска следующем экране окна будут просить вас, кто вы хотите выполнить эту задачу, я предлагаю либо "Администратор" или создание нового привилегированного пользователя. Помните, что мы не хотим вмешиваться в стандартной учетной персонала на машине в любой момент. Нажмите кнопку Далее и проверьте показать дополнительные параметры для этой задачи.

К концу запустить текстовое добавить нашу строку 'startvm GridMachine и гарантии, которые работают только тогда, когда вошли в систему остается данную опцию. Посетить Расписание задания следующего и изменить график опуститься до опцию 'в режиме ожидания ", выберите количество времени вы хотите машину сидеть сложа руки, прежде чем перейти к следующей закладке.

Наконец снимите опцию в котором говорится, остановить задачу, если она работает уже в X количество времени, но отметьте опцию, чтобы остановить задачу, если машина не простаивает.

график

Вот именно тогда для установки хост окна!

Резюме

В этой части мы создали виртуальную машину для работы в качестве работника, а также то, как мы называем и выполнить наши сценарии обработки заданий (для себя сценарий PHP). Отсюда мы рассмотрим, как настроить наши копии окна для запуска виртуальной машины в режиме безголовый, когда компьютер бездействует, и сохранить свое состояние, когда пользователь возобновляет использование машины. Надеюсь, в этот момент вы видите, как просто создать такую ​​систему и зуд, чтобы получить некоторые эксперименты собираетесь сами!

Следующий раз

В части 4 мы будем смотреть на использовании инструменты для того, что вы используете последнюю версию кода и данных источников, с тем, что полученные результаты, всегда актуальны, актуальный с последними бизнес-информации и логику.













Панорама тему, Themocracy

5 посетителей онлайн
3 гостей, 2 ботов, 0 пользователей
Максимум сегодня: 11 в 12:43 утра UTC
В этом месяце: 17 в 01-09-2011 11:27 вечера UTC
В этом году: 130 в 28-03-2011 10:40 вечера UTC
За все время: 130 в 28-03-2011 10:40 вечера UTC