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

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

От , събота 23 април 2011 г. 15:57

Продължава работата (бавно) върху новия си Twitter -базирано приложение. През следващите няколко официални празници, се надявам да получи импулс, отново по проекта (въпреки прекрасните условия в момента). Както и да е, следващата ми задача беше да се създаде един удостоверяване адаптер за Рамковата Zend . Имах вход изпълнение, но като капка в Auth адаптер за Zend Framework, изглеждаше като привлекателно предложение, така че аз го е създал ....

(Аз няма да отида чрез OAuth и регистриране на вашето приложение с Twitter, има стотици на ръководства и е доста опростен процес, така или иначе.)
Продължи четене "OAuth / Twitter Auth адаптер за Zend Framework" »

"Вход с Twitter", с помощта на Zend Framework

До , четвъртък 17-ти март 2011 г. 01:07 ч.

Въпреки всички мразят Twitter в момента, аз съм, за да създадете нов Twitter -базирано приложение. Да бъдеш някой, който управлява няколко сметки (както лични, така и за моята благотворителна дейност) съм се нуждаят от инструмент за някой, че аз съм просто да се наоколо за писане (повече, че в близко бъдеще ...).

Чел съм на Zend_Oauth_Consumer и как тя може да се използва, за да получите разрешение за взаимодействие с Twitter използване OAuth. Всички много добре, аз имам ключ за достъп и мога да весело мнение от името на потребителя. Има изобилие от ресурси там, за да направите това, така че аз няма да роди хора.

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

Алтернативите са за изпълнение на сайт дневник, в или по някакъв начин се съхранява на кода за достъп на потребителя на клиента (криптирана, разбира се). Нито един от тях изглеждаше като добър /-подходящото решение.

Продължи четене "," Вход с Twitter "с помощта на Zend Framework

Zend Certified Engineer (ZCE) 5.3

От , четвъртък, 30 септември 2010 21:00.

С официалното съобщение на Zend Certified Engineer (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" »

Quick Start Symfony DI (Зависимост Injection) инстркцията

От , събота 14-ти август 2010 14:21

Каква е зависимостта Injection (DI)?

Зависимост инжекция е техника, която дава възможност за свободно съчетани предмети в рамките на софтуерно приложение. По принцип, ако един обект се изисква достъп до функционалността на друг, би било инстанция вътрешно, което води до плътно свързани системи. Чрез прилагане на зависимостта инжекция се инжектира необходимото предмети, готови за употреба (понякога и по-обръщане на контрол - МОК). Вземете за пример следния пример:

  <? PHP
 клас DecisionMaker {
     публична функция makeDecision (масив $ параметри) {
         / / Нуждаете се от базата данни адаптер
         $ DP = нови DecisionParameters ();
         $ ParameterScore = $ DP-> getScore ($ параметри);
         / * ...  Някои повече логика на решение ...  * /
         връщане ($ parameterScore> 50);
     }
 } 

Тази част от кода се казва, да бъдат тясно свързани DecisionParameters обект. Пренаписване на по-горе в свободно свързани мода, ние ще трябва нещо подобно ....

  <? PHP
 клас DecisionMaker {
     частни $ _dp;
     публична функция __construct (ДП) {
         $ Това-> _dp = $ DP;
     }
     публична функция makeDecision (масив $ параметри) {
         $ ParameterScore = $ това-> _dp-> getScore ($ параметри);
         / * ...  Някои повече логика на решение ...  * /
         връщане ($ parameterScore> 50);
     }
 } 

При получаване на ползите от свободно свързани код, ние сме добавяне на сложност, така че всеки път, когато даден обект е инстанция, ние също трябва да инстанциира негови зависимости и така, в твърде. Така например, това:

  $ Избор = нови DecisionMaker ();
 ехо $ избор-> makeDecision (масив ("усилие" => "ниско", "връщане" => "високи")); 

сега става:

  $ DP = нови DecisionParameters ();
 $ Избор = нови DecisionMaker (ДП);
 ехо $ избор-> makeDecision (масив ("усилие" => "ниско", "връщане" => "високи")); 

Тази ситуация става все по-болезнено, като се увеличава броя на зависимостите за клас, и какво би станало, ако зависимости, които сами по себе си зависимости? Това може доста бързо да се превърне в кошмар администрация на обект! Въведете зависимост инжекция контейнери (или рамки) ...
Продължи четене "Quick Start Symfony DI (Зависимост Injection) Tutorial" »

Голи Zend_Layout и Zend_View

От , вторник 10 август 2010 г. 23:47

В тази статия Гледам Zend_Layout и Zend_View заедно с прост контролер отпред, за да покаже, как е възможно да се започне отделяне на бизнес логиката и представяне в рамките на вашата кандидатура. Всички код е на разположение на GitHub:
Голи Zend_Layout и Zend_View GitHub .

Продължаване на "Naked Zend_Layout и Zend_View" четене »

Zend Framework На Оформление настройките на модула за - Follow Up

От , вторник, 16-ти февруари 2010 20:48

Като продължение на предишния ми пост е на модул базирани настройки за оформление за Zend Framework, съм актуализиран код, за да изискват по-малко конфигурация от преди (не че това изисква повече, че няколко реда в конфигурацията на вашата кандидатура!).
Продължи четене "Zend Framework Per настройките на модула Layout - Follow Up" »

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

От , четвъртък 28 януари 2010 23:01

Това може да изглежда прост, но аз бях чука главата ми, които се опитват да създадат URL в потребителски изглед помощник в Zend Framework. Имам маршрутизация настройка, която получава модул от под-домейн в употреба, така че не можех да се използва прост кодиран URL.

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

Route искания за sitemap.xml на потребителски контролер / действие

От , сряда 6-ти януари 2010 12:13 ч.

С оглед на преките искания за / sitemap.xml потребителски контролер и действия в прилагане на Рамковата Zend просто добавете следното в application.ini или алтернативни конфигурационен файл (например I използва 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 ()
     {
    	 ехо $ това-> View-> навигация () -> карта на сайта ();
    	 -> View-> оформление () -> disableLayout ();
    	 $ _helper-> ViewRenderer-> setNoRender (вярно);
     }
 }

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

Grid Computing Виртуалните среди - част 4

От , петък 4 декември 2009 23:59

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В част 3 , ние създадохме нашата виртуална машина за обработка и настроите Windows машини да се превърне в празен работно време.

Работещи последните код

Неизбежно след създаването на бизнес логика работници ще се промени, ще бъдат открити бъгове по-бързо по-ефективно код ще се произвежда по този начин оставят работниците си седеше около обработка на данни с използване на стар вонящ код . Как тогава да се гарантира, че ние сме винаги да използвате най-новите и най-версия на нашия обработка на скриптове?

Има няколко много лесно прости начини, които можем да направим това, трик, обаче, е да се намали процесорна мощ и мрежовия трафик за постигането на тази цел. Нека започнем с най-простите решения и да го подобрява бавно в продължение на няколко повторения.

Първият метод ще бъде просто да се свърже с нашия сървър за контрол на работата (чрез самба, FTP, или други подобни) и дръпнете надолу най-новата версия на кода. Не е много ефективно, но тя ще си свършат работата. Да подобри, че до известна степен, как, за създаването на една Rsync сценария и че всеки път, вместо? Като алтернатива, какво да кажем за пускането на най-новите ни обработка на скрипт в подривна дейност първоначално преглеждане на кода и след това просто актуализиране на нашия код на всеки цикъл (SVN актуализация)?

В крайна сметка бихме могли в крайна сметка с скрипт Bash (наречен от Cron на всеки 10 минути), което изглежда толкова просто, тъй като това:

  #! / Хамбар / SH
 Ако PS брадва | Впиши срещу Впиши | Впиши PHP > / Dev / нула
 след това
     ехо "Заетост в момента преработка, излизане"
 още
     ехо "работа не е стартиран, започнете сега"
     CD / път / до / работа / копие
     SVN актуализация
     PHP yourJobProcessingScript.php
 FI 

Сега можем да бъдем сигурни, че с всяка серия Определено сме инсталирали последните код. Ние гарантираме това, чрез актуализиране на база на нашия код всеки път, когато изпълняват план и намаляване на мрежовия трафик, като само прехвърляне на файла различия в нашата мрежа.

В моята демонстрация настройка, аз го направих точно както по-горе. Subversion е инсталиран на моя сървър за обработка на работа и аз просто издърпа последните кода от клон "работник", с помощта на "SVN актуализация". Аз също добавя маркер за номера на версията за обработка ми скрипт, който бе върнат в базата данни като част от резултатите връщане. По този начин можех да видя, че моят код се обновява на всеки път, когато ми е копирала багажника на работник клон, т.е., че Определено бях използвате последната обработка скрипт.

Използването на най-новите данни

Ако вашата работа използва преработката на източниците на данни и след това в някакъв момент те ще бъдат актуализирани. Освен ако не се обадите на вашия източници на данни за много редки основа, ти започваш да заливат мрежата с трафик, веднага след като работници започват да текат донесе всичко до застой. За моето решение, реших, че бих искал да се движат моите източници на данни наоколо с моите виртуални машини.

Задръжте сте коне там! Какво става, ако моите източници на данни са огромни? Е, това наистина е случай на колко данни са говорим? Той може да бъде по-рентабилно да инсталирате допълнителен по-голям твърд диск във всяка машина, отколкото за закупуване на допълнителен сървър за обработка. Това е въпрос на бюджета и на бизнеса да решава. Това може би, че източниците на данни са толкова големи, че просто неприложим, за да запази тази сума на данни във вашето работник машини. В такъв случай какво бихте направили? Е, бихме могли да разгледаме свикването на локален сървър на данни, но това може да предизвика проблеми с мрежата . В този случай системата на преносната мрежа, като това може да стане нереалистично да се включат във вашия офис среда. Тя може също така да бъде, че можеш да погледнеш в алтернативни стратегии, например, само да се обадите на работници между 20:00 и 6 сутринта всяка нощ и / или дроселиране искания източник на данни.

Нека продължим, нека нашите данни източници размер до 100GB на данни. Ами да, това е доста малко данни, за да се придвижват в мрежата на актуализация. Как ще се гарантира, че имаме най-новите копие на данните в този случай? Rsync е възможност, но лично аз мисля, че като пуснете последните си източник на данни на вашия сървър за обработка на работа и определяне на това като майстор в репликацията (с хубав дълъг Дневник бин) може да бъде начин да отида:

копиране Чрез настройка на всеки от работниците си като роб на работа актуализации на сървъра за управление на вашите източници на данни ще се стича добре на вашите работници без голямо увеличение на дейността на мрежата (това е, освен ако не изпълняват огромен актуализация на данните и всички работници ритник в наведнъж). Това има предимства пред Rsync по това, че няма да получи дълга пауза преди всяка работа, като осъвременявания на базата данни, MySQL демон на вашият работник постоянно ще актуализира своите данни, а обработката продължава .

Това е, как ми демонстрация сървър. За да зададете до репликация последва ръководство на сайта на MySQL ( Създаване репликация) и в рамките на 20 минути имах inital работник имитиране набор от данни за контрол на работата на сървърите. За всеки работник допълнителни настройки и процеса на репликацията работи всеки път, когато е преписан VM.

Обобщение

В този раздел на статията са се занимавали с колко лесно и безболезнено е да поддържате кода обработка до датата, до using Rsync или subverion (SVN), за да вършат работа и да се намали мрежовия трафик, в същото time. Ние също обсъждат как да запазите вашите данни източник на информация за дата, като позволява да се стича надолу към всеки от вашите работници. По този начин ние площ се гарантира, че сме в крак с бизнес логика и информация в нашата система за офис мрежа. Има очевидно ще бъде безброй алтернативи за извършване на тези задачи, но тук са два прости примери, за да се покаже колко лесно решение е да дойда.

Следващия път

В заключителната част на тази серия, уместно наречена част 5 , ние ще обсъдим внедряване на тази система за Ще обобщим какво е научил и това, което успях да създадете.

Grid Computing Виртуалните среди - Част 3

От , петък 4 декември 2009 23:37

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В част 2 ние погледна на работни места, ще се изпълни със сървър, както и колко работни места трябва да бъдат конфигурирани, за да се постигне най-голям размер на обработка, като същевременно се гарантира, че всяко едно работно място се обработва, без да се провалят.

Създаване на работник или накуцване сървър

Следващата стъпка в процеса е да се създаде виртуална работници. За това аз ще използвам инсталация на CentOS, използвайки VirtualBox. Отивам да инсталирам MySQL и PHP на сървъра, известен също като накуцване (Li Nux, M ySQL, P HP) Server (I може да е направил, че името до).

  • Инсталирайте VirtualBox на вашия Windows машина (следват връзка)
  • Свалете и инсталирайте CentOS (текущата версия 5.3) в рамките на създадената виртуална машина

Няма смисъл да ме ще има вероятно 1000 "е от голямо ръководства там (добре де, ето един: Създаване и Managing CentOS виртуална машина под VirtualBox ). Важното е да се отбележи, предполагам, че се обадих на моята виртуална машина GridMachine.

Що се отнася до моят избор на клиент за виртуализация и операционна система не е голям основателна причина за всеки избор. VirtualBox е нещо, което аз използвам за моята домашна машина и е подкрепена от трите основни операционни системи. Аз избрах CentOS като си е добра стабилна OS и го използвам за моя собствен уеб сървър. Аз съм голям вярващ в правилните инструменти за работа (въпреки че аз съм се прилагат "да се използва най-бързият и лесен за вас" манталитет тук), така че, ако операционната система X работи кода си по-бързо и по-ефективно използване, че вместо да:)

Важно уверете се, че VM използва DHCP, в противен случай за всяка нова виртуална машина, ще трябва да бъде конфигуриран отделно, което е нещо, което ние не want.By използва DHCP ние не трябва да конфигурирате мрежовите настройки поотделно за работник машини, DHCP ще ръка от IP адреси за вас. Ето защо можете да копирате вашите виртуална машина за офис, без да се притеснявате за определяне на всеки един (това подобрява скалируемостта и намалява администрацията на работник).

Процесът, който трябва да се стреми да постигне, би била да получи нова физическа машина, да инсталирате VirtualBox, и след това почти мобилизиране на виртуален образ, без много други неща. Това би е разумно да настроите всички работници на различна подмрежа, така че поне можете да видите колко машини са. Вие също така ще трябва да създадат машини на дългосрочни договори за наем или неограничено лизинг DHCP.

Как да стартираме заетост на работника

Това е интересен и има няколко валидни методи за обработка на работни места на работника. Тук аз просто ще обсъдят двете най-очевидните:

  • Вечно стартирания скрипт: скрипт скрипт или PHP скрипт се изпълнява веднъж на работник и работи като част от безкраен цикъл. Съм дисконтирани този метод като един катастрофата на сценария и потенциално вашите работници ще престане да работи без някаква намеса.
  • Cron изпълнението на скрипта: Всеки X минути Cron демона започва призив към вашият скрипт, за да получите неща се случват. Без някаква проверка, това може да доведе до много, много копия на работник скрипт си работи.

Моето решение е да отидете с Cron, който започва шел скрипт на всеки 10 minutes. Моят скрипт извършва следните задачи:

  1. Получите списък на процеса и Впиши това за "PHP". Ако не е намерено след това да продължи.
  2. Обадете се на вашия код за работа, в моя случай това би било нещо, базиран на PHP
  3. Работник скрипт завършва си план
  4. Готови ли сте да отидете отново на следващия подходящ повикване

Bash скрипт ми изглежда нещо като следното:

  #! / Хамбар / SH
 Ако PS брадва | Впиши срещу Впиши | Впиши PHP> / Dev / нула
 след това
     ехо "Заетост в момента преработка, излизане"
 още
     ехо "работа не е стартиран, започнете сега"
     PHP yourJobProcessingScript.php
 FI 

Забележка: ехото са почти напълно безсмислено, но може да помогне на следващия човек, който идва заедно да се опитаме да ги редактирате .

Това заключава, на работника виртуална машина, бърз, прост и лесно да копирате на всяко ново парче на хардуер, който е получил. "Интелигентност" на мрежата, наистина не е в визуализира OS, всички да се направи с код, създаден, за да обработва работни места, работа конфигурация, и като се уверите, че работата се изпълнява, когато е подходящо (т.е. когато домакин е празен ).

Създаване на Windows да инициализира на работниците

Първата задача е да се работи на команда, необходими за работата на виртуалната машина от командния ред на Windows. Ако сте инсталирали VirtualBox в местоположението по подразбиране и сте работник GridMachine след това командата изисква да заредите вашата работникът е:

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

Все пак, за да стартирате скрипта в "обезглавена" състояние, ще трябва да използвате:

  "C: \ Program Files \ нд \ VirtualBox \ VBoxHeadless.exe" startvm GridMachine - vrdp = изключено 

Това ще започне на виртуалната машина без GUI и ще позволи да се спестят държавни грациозно. Вторият аргумент се изключва ПРСР, така че той не противоречи с прозорци ПРСР, или ще ви даде съобщение за слушане на порт 3389. Името на виртуалния машина е чувствителна !

На следващо място, ние ще трябва да настроите прозорците, за да започнат VM работник, след като машината е празен. За да направите това (за Windows XP), ще трябва да отидете на Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks, както по-долу:

планирани задачи

След това кликнете върху "Добавяне на планирана задача", последвано от Преглед, за да добавите потребителски програма. Придвижете се до вашата VBoxManage скрипт и щракнете върху OK. График вашата задача за някоя от опциите (ние ще променим това в минута) и да продължи. След като прескочите следващия екран Windows ще поиска от вас, които искате да изпълните тази задача, бих предложил или "Администратор" или създаването на нови привилегировани потребител. Запомнете, ние не искаме да се намесва в стандартен акаунт персонал на машината във всяка точка. Щракнете върху Напред и проверката покажат, разширени опции за изпълнението на тази задача.

До края на надпреварата виждаш добавите нашия низ "startvm GridMachine" и да се гарантира, които работят само, когато са влезли в лявата unticked. Посетете задачата график и промяна на графика падащото опцията "когато бездейства", изберете размера на път, когато искате машината да бъде мързелив, преди да преминат към следващия раздел.

Накрая untick опция, която гласи, спиране на задача, ако тя е Х количество време, но маркирай възможността да спрете задачата, ако машината вече не е празен.

разписание

Това е то тогава за домакин за инсталиране на Windows!

Обобщение

В тази част ние имаме създадена една виртуална машина, за да действа като работник, както и начина, по който, в който ние наричаме и изпълнение на скриптове за обработка на работа (за себе си скрипт на PHP). От тук ние гледаме как да се създаде копия на Windows, за стартиране на виртуалната машина в обезглавен режим, когато компютърът става празен, и запишете на състоянието му, когато потребителят се връща в използването на машината. Надяваме се в този момент вие виждате колко просто е да се създаде такава система и са сърбеж да получите някои експерименти себе си ще!

Следващия път

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













"Панорама" Тема чрез Themocracy

9 посетители на линия
8 гости и 1 ботове, 0 потребители
Макс посетители днес: 16, 24:59 UTC
Този месец: 19 19-08-2011 06:09 ч. UTC
Тази година: 130 в 28-03-2011 22:40 UTC
През цялото време: 130 в 28-03-2011 22:40 UTC