Категорія: Статті

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

14 відвідувачів онлайн
8 людей, 6 ботів, 0 користувачів
Максимум сьогодні: 23 в 5:40 ранку UTC
В цьому місяці: 23 в 24-08-2011 5:40 ранку UTC
У цьому році: 130 в 28-03-2011 10:40 вечора UTC
За весь час: 130 в 28-03-2011 10:40 вечора UTC