Kategorie: Články

OAuth / Twitter Auth adaptér pro Zend Framework

Tím, , v sobotu 23.dubna 2011 15:57

Práce pokračuje (pomalu) na můj nový Twitter aplikace založené na. Během následujících několika svátků doufám, že se tempo jít znovu na projektu (in-přes nádherné počasí, v současné době). Mimochodem, mým úkolem bylo vytvořit ověřování adaptér pro Zend Framework . Měl jsem práci login provedení, ale s poklesem Auth adaptér pro Zend Framework se zdálo jako atraktivní návrh, tak jsem jej vytvořil ....

(Nebudu procházet OAuth nebo registraci aplikaci s twitter, je tu stovky průvodců a docela přímočarý proces stejně.)
Pokračovat ve čtení "OAuth / Twitter Auth adaptér pro Zend Framework" »

"Přihlásit se Twitter" pomocí Zend Framework

Tím, , ve čtvrtek 17 března 2011 01:07

Přes všechny nenávidí Twitter v současné době, jsem se rozhodl vytvořit nový Twitter aplikace založené na. Jako někdo, kdo spravuje více účtů (jak osobní, tak pro svou charitativní činnost) jsem potřebovat nástroj pro někdy, že jsem jen na to, asi na psaní (více, že v blízké budoucnosti ...).

Četl jsem až na Zend_Oauth_Consumer a jak jej lze použít k získání povolení k interakci s twitter pomocí OAuth . Vše v pořádku, mám přístupový klíč a můžu vesele dál na příspěvek uživatele jménem. Je tu spousta zdrojů, tam to udělat, takže nebudu nudit lidi.

Dalším krokem bylo umožnit lidem vrátit se do webové stránky, přihlaste se a měnit jejich účet. To je místo, kde jsem došel trochu problém. Pomocí příklady kódu na webových stránkách znamenalo, že bych si Twitter mě ptá, o oprávnění k přístupu znovu pro každé přihlášení, není dobré. Skenování prostřednictvím rámcového jsem neviděl nic, co by mi umožnilo jen žádost ověřování. To však neznamená, řekli, že tam není, ale nezdálo se, že se mechanismus autentizace, který by mohl být spuštěn bez znalosti přístupového tokenu již.

Alternativy se realizovat na místě, přihlaste se nebo nějak uložit přístupový token uživatele na straně klienta (samozřejmě šifrovaná). Ani jeden z nich vypadal jako dobré / vhodné řešení.

Pokračovat ve čtení "Přihlásit se Twitter" za použití Zend Framework "»

Zend Certified Engineer (ZČE) 5,3

Tím, , čtvrtek 30 září 2010 21:00

S oficiálním vydáním tohoto Engineer Zend Certified (ZČE), program pro 5,3 Myslel jsem, že dám rychlé dojem z toho, co jsem si na zkoušku.

Trochu pozadí na sebe: Já jsem byl poprvé představen na PHP asi před 7 lety a pracovali profesionálně v PHP od roku 2006. V současné době pracuji na vzrušující start-up volal Brightpearl se sídlem v Bristolu ve Velké Británii , vyrábějící integrované CRM, účetnictví a elektronického obchodování software. Jsem se dosud nezískala žádné z předchozích ZČE kvalifikace. I v současné době vyvíjejí v 5.2.X seriálu a ve skutečnosti použity žádné zvláštní funkce 5,3 (čekám na Zend Framework 2 a doktrína 2) ve své rozvojové projekty.
Pokračovat ve čtení "Zend Certified Engineer (ZČE) 5,3" »

Quick Start Symfony DI (Dependency Injection) výuka

Tím, , v sobotu 14 srpna 2010 14:21

Co je Dependency Injection (DI)?

Dependency Injection je technika, která umožňuje volně vázaných objektů v rámci aplikace. Obecně, pokud objekt vyžaduje přístup k funkcím jiného by bylo instance vnitřně vede k pevně spojený systémů. Realizací Dependency Injection si aplikujte potřebné objekty připravené k použití (někdy také odkazoval se na opak řízení - IOC). Vezměte si následující příklad:

  <? Php
 Třída DecisionMaker {
     public function makeDecision (array $ parametry) {
         / / Potřebujeme databázi adaptér
         $ Dp = new DecisionParameters ();
         ParameterScore $ = $ DP-> getScore ($ parametry);
         / * ...  Některé další logiky rozhodování ...  * /
         návratnost ($ parameterScore> 50);
     }
 } 

Tento kus kódu se říká, že pevně spojen s DecisionParameters objektu. Přepisování výše volně vázaných způsobem bychom si něco takového ....

 <PHP třída DecisionMaker {private $ _dp;? Public function __construct ($ dp) {$ this-> _dp = $ DP;} public function makeDecision (array $ parametry) {$ parameterScore = $ this-> _dp-> getScore ($ parametry), / * ...  Některé další logiky rozhodování ...  * / Return ($ parameterScore> 50);}} 

Zatímco získání výhody volně vázané kódu přidáváme složitosti tak, že pokaždé, když je objekt instance musíme také jeho závislosti instanci a předat tyto příliš. Například tento:

  $ Volby = new DecisionMaker ();
 echo $ volby-> makeDecision (array ('úsilí' => 'nízké', 'návrat' => 'vysokou')); 

Nyní se stává:

  $ Dp = new DecisionParameters ();
 $ Volby = new DecisionMaker ($ dp);
 echo $ volby-> makeDecision (array ('úsilí' => 'nízké', 'návrat' => 'vysokou')); 

Tato situace se stává bolestivé jako počet závislostí třídy se zvyšuje, a co když závislostí sami se závislostí? To může velmi rychle stát předmětem správy noční můra! Zadejte kontejnery Dependency Injection (nebo rámce) ...
Pokračovat ve čtení "Quick Start Symfony DI (Dependency Injection) Seminář" »

Naked Zend_Layout a Zend_View

Tím, , v úterý 10.8.2010 23:47

V tomto článku jsem se podívat na použití Zend_Layout a Zend_View spolu s jednoduchým front controller ukázat, jak je možné začít oddělení business logiky a prezentace v rámci aplikace. Celý kód je k dispozici na github:
Naked Zend_Layout a Zend_View na GitHub .

Pokračovat ve čtení "Naked Zend_Layout a Zend_View" »

Zend Framework za nastavení rozvržení Module - navazující

Tím, , v úterý 16 února 2010 20:48

V návaznosti na můj předchozí příspěvek na modul na uspořádání nastavení pro Zend Framework , jsem aktualizoval kód vyžadovat méně konfiguraci, tedy před (ne že by to vyžadovalo více než pár řádek v konfiguraci aplikace!).
Pokračovat ve čtení "Zend Framework za nastavení modulu Dispozice - navazující" »

Vytvoření URL v Zend Custom View Helper

Tím, , ve čtvrtek 28 leden 2010 23:01

Může se to zdát jednoduché, ale byl jsem bouchal hlavou snaží vytvořit URL ve vlastním zobrazení pomocník v Zend Framework . Mám směrování nastavení, která se dostane modulu ze sub-doménu používat, takže jsem nemohl použít jednoduchý hardcoded URL.

Pokračovat ve čtení "Vytvoření URL v Zend Custom View Helper" »

Trasa žádosti o sitemap.xml na vlastní řídicí / akce

Tím, , ve středu 06.01.2010 00:13

Aby bylo možné žádosti o přímé / sitemap.xml na vlastní řadič a akce v Zend Framework aplikace stačí přidat následující v application.ini nebo alternativním konfiguračním souboru (např. já používám navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = index
 resources.router.routes.sitemap.defaults.action = mapa stránek

Například kód pro výstup může být viděn tím, že vytvoří akce v příslušné ovladače (např. moje mapa stránek spočívá v řídící index, mapa webu akce):

 < php
 Třída IndexController
     rozšiřuje Zend_Controller_Action
 {
     / **
      * Poskytuje Sitemap na základě Zend_Navigation nastavení
      * /
     public function sitemapAction ()
     {
    	 echo $ this-> Zobrazit-> Navigace () -> Mapa ();
    	 $ This-> Zobrazit-> Layout () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Soubory Sitemap lze snadno a rychle generovat pomocí Zend_Navigation , skvělý rychlý tutorial (a obecně velmi užitečné pro Zend tutoriály Framework) je Zend Odlitky - dynamicky vytváří menu Sitemap a strouhance .

Office Grid Computing pomocí virtuálních prostředí - Část 4

Tím, , pátek 04.12.2009 23:59

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

V části 3 jsme vytvořili virtuální zpracování a nastavení počítače se systémem Windows, aby se stal nečinnosti úvazek.

Spuštění poslední kodex

Nevyhnutelně Po vytvoření pracovníků obchodní logiky se změní, bude se nachází chyby, bude rychlejší efektivnější kód vyráběny tak zanechává pracovníky seděli zpracování dat pomocí staré páchnoucí kódu . Jak tedy zajistíme, že jsme vždy používat nejnovější a nejlepší verze naší zpracování skriptů?

Existuje několik jednoduchých způsobů, jak snadno jsme mohli udělat to, trik, nicméně, je snížení výpočetního výkonu a provoz sítě v dosažení tohoto cíle. Začněme s nejjednodušší řešení a zlepšit to pomalu přes několik iterací.

První metodou by bylo jednoduše připojit k našemu serveru pro ovládání úloh (přes Sambu, FTP, apod.), a strhnout nejnovější verzi kódu. Ne velmi výkonný, ale to bude dělat svou práci. Umožňuje zlepšit to trochu, jak se o vytvoření a použití rsync skript, který pokaždé, když místo toho? Jinak, co se o uvedení nejnovější zpracování skriptu do Subversion podívat se na kód na začátku a pak už jen aktualizovat náš kód na každém spuštění ( svn update )?

Na závěr bychom mohli skončit s skript bash (nazvaný cronu každých 10 minut), který vypadá tak jednoduché, jak to:

  #! / Bin / sh
 Pokud ps ax | grep-v grep | grep php > / dev / null
 pak
     echo "práce je v současné době zpracování, exit"
 jiný
     echo "Pracovní neběží, začít už teď"
     cd / cesta / k / práce / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Nyní můžeme být jisti, že se každý pokus jsme definitivně poslední verze kódu. Jsme tím, že zajistí aktualizaci našich zdrojový kód každého a pokaždé, když se provede spuštění a snižuje provoz v síti pouze přenos souboru rozdíly v naší síti.

V mém demonstraci nastavení, já jsem přesně jak je uvedeno výše. Subversion je nainstalován na svém serveru zpracování zakázek a prostě jsem vytáhl poslední kód "pracovníka" pobočka pomocí "svn update '. Také jsem přidal číslo verze tag pro mé zpracování skriptu, který se vrátil do databáze jako součást výsledků návratu. Tímto způsobem jsem mohl vidět, že můj kód byl aktualizován pokaždé, když jsem kopíroval do kufru, tj. pracovník pobočky, že jsem určitě běží nejnovější zpracování skriptu.

Použití nejnovějších údajů

Je-li vaše práce pro zpracování využívá zdrojových dat pak v určitém bodě se jedná bude aktualizovat také. Pokud zavoláte své zdroje dat na velmi řídkém základě budete povodně sítě s provozem, jakmile vaši zaměstnanci se začnou přinášet všechno, co ke klidu. Pro mé řešení, jsem se rozhodl, že bych rád pohyb Zdroje dat si s mou VM.

Držte jste tam koně! Co dělat, když zdroje dat jsou obrovské? No to je opravdu případ, kolik dat je řeč? To může být z hlediska nákladů efektivnější instalovat další větší pevný disk na každém počítači, než koupit další zpracování serveru. To je otázka rozpočtu a do podniku se rozhodnout. Je možná, že zdroje dat jsou tak velké, že je to jen proveditelné, aby toto množství dat v pracovníkem zařízení. V tomto případě to, co byste dělali? Tak jsme se mohli podívat na volání místní datový server, ale to může způsobit problémy se sítí. V tomto případě distribuční soustavy, jako je tento se může stát nereálné zahrnout do kancelářského prostředí. To může také být, že se můžete podívat do provozu alternativní strategie, například pouze Volání pracovníků mezi dvacet hodin a 6 hodin ráno každou noc a / nebo škrtící zdroj dat požadavky.

Přesunout se vám tvrdit, že naše zdroje dat činí 100 GB dat. No ano, to je docela dost dat se pohybovat po síti na aktualizaci. Jak by se zajistilo, že jsme poslední kopii dat v tomto případě? Rsync je možné, ale osobně si myslím, spuštěním své nejnovější zdroje dat na serveru zpracování zakázek a nastavení to se jako mistr v replikaci (s velmi dlouho bin log), může být cesta:

replikace Při nastavení každého z vašich zaměstnanců se jako otrok do práce kontrolu aktualizací serveru do zdroje dat se dostaly až pěkně k pracovníkům bez obrovský nárůst aktivity v síti (tedy pokud budete provádět velké aktualizace dat a všechny pracovníky v kop najednou). To má výhody oproti rsync v tom, že byste se dostat dlouhá pauza před každou práci, protože aktualizace databáze, mysql daemon bude na pracovníka průběžně aktualizovat své údaje, zatímco zpracování pokračuje.

To je, jak mám nastavit moje demonstrace server. Chcete-li nastavit replikace jsem podle příručky na webu MySQL ( Nastavení replikace ) a do 20 minut jsem měl Inital pracovník kopírovat práci kontrolují servery datového souboru. Za každý další pracovník nastavení replikace a proces se osvědčil pokaždé, když byl zkopírován VM.

Přehled

V této části článku jsme se zaměřili na to, jak snadné a bezbolestné je, aby vaše operační kód v aktuálním stavu pomocí rsync, nebo using subverion (SVN) dělat práci a snížit zatížení sítě na stejném time. Mluvili jsme také o tom, jak , aby vaše informace o zdroji dat up-to-data tím, že se dostaly až ke každému z vašich pracovníků. Tak jsme oblast zajistí, že držíme krok s obchodní logiky a informace v našem systému Office sítě. K dispozici budou samozřejmě nespočet alternativy k plnění těchto úkolů, ale tady byli dva jednoduché příklady, jak jednoduché řešení je sehnat.

Příště

V závěrečné části tohoto seriálu, příhodně pojmenované části 5 , budeme diskutovat o nasazení tohoto systému. Budu shrnout to, co jsme se naučili a co se mi podařilo vytvořit.

Office Grid Computing pomocí virtuálních prostředí - Část 3

Tím, , pátek 04.12.2009 23:37

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

V části 2 jsme se podívali na práci serveru poběží, a jak by práce být nakonfigurován tak, aby bylo dosaženo největšího množství zpracování, a zároveň zajistit, že každá práce je zpracována bez chyb.

Nastavení si pracovník - nebo Limp serveru

Dalším krokem v tomto procesu je nastavit virtuální zaměstnance. Z tohoto budu používat instalace CentOS pomocí VirtualBox. Chystám se instalovat MySQL a PHP na serveru, také známý jako Limp (Li nux, ySQL m, P HP) Servera (Možná jsem se, že název se).

  • Instalovat VirtualBox na počítač s Windows (po spojení)
  • Stáhnout a nainstalovat CentOS (aktuální verze 5.3) v rámci vytvořených virtuálních strojů

Nemá smysl mi bude toto je to asi 1000 's velkou tutoriálů tam (ok, tady je jeden: Vytvoření a Managing CentOS virtuální stroj pod VirtualBox ). Důležité poznamenat, myslím, že jsem volala moje virtuální stroj GridMachine.

Pokud jde o moji volbu pro virtualizaci klientů a operační systém tam není žádný velký závažný důvod pro každou volbu. VirtualBox je něco, co používám na svém domácím počítači a je podporován třemi hlavními operačními systémy. Vybral jsem si CentOS jako dobrý stabilní OS, a používám ho na vlastní webový server. Jsem velkým zastáncem správné nástroje pro práci (i když já jsem použití "použití nejrychlejší a nejjednodušší pro Vás" mentality zde), takže pokud operační systém X běží kód rychleji a efektivněji využít, že místo toho:)

Důležité je zajistit, aby vaše VM používá DHCP, jinak za každý nový virtuální stroj by bylo nutné konfigurovat samostatně což je něco, co nemáme want.By pomocí DHCP nepotřebujeme konfigurovat nastavení sítě individuálně pracovníka zařízení, bude DHCP ruky z IPS pro vás. Z tohoto důvodu je možno zkopírovat vaše virtuální stroj na úřadu bez obav o nastavení každé z nich se (Tím se zlepšuje škálovatelnost a sníží administrativní pracovník).

Proces, který by měl usilovat o dosažení by bylo získat nový fyzický stroj, nainstalovat VirtualBox a pak do značné míry nasadit virtuální obraz, aniž by mnoho jiného. To by mohlo být moudré nastavení všech pracovníků na jiné podsíti, takže si můžete alespoň vidět, kolik strojů je v provozu. Budete také muset nastavit zařízení na dlouhodobý pronájem nebo leasing neomezené DHCP.

Jak spouštět úlohy na pracovníka

Jedná se o zajímavou oblast a tam je několik ověřených metod zpracování práce na pracovníka. Zde jsem si jen diskutovat o dva nejzjevnější:

  • Trvale spuštění skriptu: Skript, ať už je to shell skript nebo PHP skriptu se provádí jednou na pracovníka a pracuje jako součást nekonečné smyčky. Já jsem tuto metodu diskontovaných jako jeden pád skriptu a potenciálně vašich pracovníků přestane provozovat bez nějakého zásahu.
  • Cron na skriptu: každých x minut cron démon začíná volání skriptu dát věci do pohybu. Bez nějaké kontrole To by mohlo vést k mnoha mnoha kopií své provozní zaměstnance skriptu.

Mé rozhodnutí bylo jít s cron, který odstartuje skript každých 10 minutes. můj skript plní tyto úkoly:

  1. Získání seznamu procesů, a to za grep "php". Pokud není nalezen pak pokračujte.
  2. Zavolejte svou práci kód, v mém případě by to bylo něco, co na PHP
  3. Worker skript dokončí běh
  4. Připraven jít zase na další příslušné výzvy

My bash script vypadá takto:

  #! / Bin / sh
 Pokud ps ax | grep-v grep | grep php> / dev / null
 pak
     echo "práce je v současné době zpracování, exit"
 jiný
     echo "Pracovní neběží, začít už teď"
     php yourJobProcessingScript.php
 fi 

Poznámka: ECHO, jsou téměř úplně zbytečné, ale může pomáhat další člověk, který přijde, aby se pokusila upravit.

, Který uzavře nastavení pracovníka virtuální stroj, rychlý, jednoduchý a snadno kopírovat na každý nový kus hardwaru, který je přijal. "Chytrosti" distribuční soustavy, opravdu není na vizualizaci OS, jeho do činění s kódem pro zpracování vytvořených pracovních míst, pracovní uspořádání, a ujistěte se, že úloha spustit v případě potřeby (např. pokud host je nečinný ).

Nastavení Windows inicializovat pracovníků

Prvním úkolem je vypracovat příkazu potřebné ke spuštění virtuálního počítače z příkazového řádku Windows. Pokud jste nainstalovali VirtualBox ve výchozím umístění a vy jste jmenoval svého pracovníka GridMachine pak příkaz načítání vašeho pracovníka je:

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

Nicméně spustit skript "bezhlavý" státu musíme použít:

  "C: \ Program Files \ ne. \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Spustí se virtuální stroj bez GUI a nechte ji zachránit státní elegantně. Druhý argument se vypne RDP tak to není v rozporu s Windows RDP, nebo vám zprávu o naslouchá na portu 3389. Název virtuálního stroje je malá a velká písmena!

Dále se budeme muset nastavit systém Windows až po nastartování našeho pracovníka VM, jakmile stroj byl nečinný. K tomu (na Windows XP), budete muset jít Start -> Programy -> Příslušenství -> Systémové nástroje -> Naplánované úlohy jak je uvedeno níže:

naplánovaných úloh

Potom klikněte na "Přidat naplánovanou úlohu", po němž Procházet přidat vlastní program. Přejděte do VBoxManage skript a klepněte na tlačítko OK. Naplánovat úkol pro některou z možností (budeme změnit v minutě) a pokračuje. Po přeskočení na další obrazovku Windows se vás zeptá, který chcete spustit tuto úlohu, kterou navrhuji buď "správce", nebo vytvoření nového privilegovaný uživatel. Pamatujte si, že nechceme narušovat standardní pracovníky účet na počítači, na nějakém místě. Klepněte na tlačítko Další a zaškrtněte Zobrazit rozšířené možnosti pro tento úkol.

Na konci běhu textového pole přidat náš řetězec "startvm GridMachine" a zajistit, že běží pouze při přihlášení je vlevo nezaškrtnuté. Navštivte harmonogram úkolů a další změny plánu klesnout až na možnost "při nečinnosti", zvolit dobu, po kterou bych, stroj se nečinnosti před přechodem na další záložku.

Nakonec Zrušte volbu, která uvádí, zastaví úlohu, pokud běží X množství času, ale zaškrtněte možnost zastavit úkol, pokud je stroj již není nečinný.

program

To je pak pro nastavení host Windows!

Přehled

V této části jsme se vytvořit virtuální stroj se chovat jako dělník, ale i způsob, jakým se hovoru a realizovat naše skripty zpracování zakázek (pro sebe PHP skriptu). Odtud se podíváme na to, jak nastavit naše kopie Windows na spuštění virtuálního stroje v bezhlavém režimu, když je počítač nečinný stane, a uložit svůj stav, když uživatel obnoví využití stroje. Doufejme, že v tuto chvíli vidíte, jak jednoduché je vytvořit takový systém a svědění získat nějaké pokusy jít sám!

Příště

V části 4 se budeme dívat na použití nástroje, které zajistí, že používáte nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy up-to-date s posledním obchodních informací a logiky.













Panorama Téma, které Themocracy

7 návštěvníků online
2 osoby, 5 boty, 0 členů
Max návštěvníků dnes: 19 v 06:09 UTC
Tento měsíc: 19 v 19-08-2011 06:09 UTC
Tento rok: 130 u 28-03-2011 22:40 UTC
Za celé období: 130 u 28-03-2011 22:40 UTC