Kategooria: Artiklid

OAuth / Twitter Auth Adapter Zend Framework

Autor , laupäev 23. aprill 2011 15:57

Töö jätkub (aeglaselt) minu uus Twitter -põhine rakendus. Järgneva paari riigipühadel Loodan saada hoogu läheb jälle projekti (in-vaatamata suurepärane ilm praegu). Igatahes minu järgmine ülesanne oli luua autentimise adapter Zend Framework . Mul oli töö login rakendamist, kuid võttes tilk Auth adapter Zend Framework tundus ahvatlev ettepanek, nii et ma loonud ....

(Ma ei lähe läbi OAuth või registreerimiseks oma taotluse twitter, seal on sadu juhendid ja selle üsna lihtne protsess igal juhul.)
Jätka lugemist "OAuth / Twitter Auth Adapter Zend Framework" »

"Sign sisse Twitter", kasutades Zend Framework

Autor , neljapäev 17 märts 2011 01:07

Vaatamata kõigile twitter vihkan hetkel, ma olen sätestatud, et luua uus twitter -põhine rakendus. Olles kellegagi, kes majandab mitut kontod (nii isiklikud kui ka minu heategevus) Olen olnud vaja vahend millalgi et ma olen lihtsalt liikumisvahend kirjalikult (rohkem et lähitulevikus ...).

Olen lugenud üles Zend_Oauth_Consumer ja kuidas seda kasutada, et saada luba suheldes twitter kasutades OAuth . Kõik hea ja tore, mul on klahv ja võin rõõmsalt post kaugusel kasutaja nimel. Seal on palju ressursse seal seda teha nii et ma ei kandis inimestega.

Järgmine samm oli, et inimesed saaksid naasta veebilehel sisse logida ja muuta oma konto. See on kui jõudsin väike probleem. Kasutades koodi näiteid veebilehtedel tähendas, et ma pean twitter minult juurdepääsu luba uuesti iga sisse logida, ei ole hea. Skaneerimine raamistiku kaudu ma ei näe midagi, mis lubaks mind lihtsalt taotluse kinnitamisega. See ei tähenda tema ei ole olemas, aga seal ei tundu olevat autentimise mehhanismi, mis võiks tugineda tundmata juurepääsutõend juba.

Alternatiivid olid rakendada Objektipõhise logi sisse või kuidagi salvestada kasutaja juurepääsutõend kliendi kohta (krüpteeritud muidugi). Kumbki neist tundus hea / sobiv lahendus.

Jätka lugemist "" Logi sisse Twitter ", kasutades Zend Framework" »

Zend Certified Engineer (ZCE) 5.3

Autor , neljapäev 30. september 2010 21:00

Mis ametlik release on Zend Certified Engineer (ZCE) programmi 5,3 mõtlesin ma annan kiire mulje, mida ma mõtlesin eksami.

Natuke tausta kohta ise: olin esimest korda kasutusele PHP umbes 7 aastat tagasi ja on töötanud professionaalselt PHP alates 2006. Ma praegu tööd põnev start-up nimetatakse Brightpearl asub Bristol, Suurbritannia , mis toodavad integreeritud CRM, raamatupidamis-ja e-tarkvara. Ma ei ole varem olnud ühegi eelmise ZCE kvalifikatsiooni. Ma praegu areneda 5.2.X seeria ja ei ole tegelikult kasutanud mingeid konkreetseid 5,3 funktsioonid (ma ootan Zend Framework 2 ja doktriin 2) minu arendusprojekte.
Jätka lugemist "Zend Certified Engineer (ZCE) 5.3 '»

Quick Start Symfony DI (Sõltuvus Injection) Õpik

Autor , laupäev 14. august 2010 14:21

Mis on Sõltuvus Injection (DI)?

Sõltuvus süst on meetod, mis võimaldab nõrgalt sidestatud objektide tarkvara rakendus. Üldiselt kui objekt nõuab juurdepääsu funktsionaalsust teine ​​oleks instantiated sisemiselt viib tihedalt sidestatud süsteemid. Rakendades sõltuvust süsti me Süstida vajalik objektide kasutamiseks valmis (mõnikord nimetatakse ka inversioon kontroll - ROK). Võtke järgmine näide:

  <? Php
 klassi DecisionMaker {
     avaliku funktsiooni makeDecision (massiiv $ parameetrid) {
         / / Vajad andmebaasi adapter
         $ Dp = new DecisionParameters ();
         $ ParameterScore = $ dp-> getScore ($ parameetrid);
         / * ...  Mõned rohkem otsuseid loogika ...  * /
         return ($ parameterScore> 50);
     }
 } 

See tükk kood on väidetavalt tihedalt sidestatud DecisionParameters objekti. Ümberkirjutamine eespool nõrgalt sidestatud mood me tahaks olla midagi sellist ....

  <? Php
 klassi DecisionMaker {
     Privaatsõnumite $ _dp;
     avaliku funktsiooni __construct ($ dp) {
         $ This-> _dp = $ dp;
     }
     avaliku funktsiooni makeDecision (massiiv $ parameetrid) {
         $ ParameterScore = $ this-> _dp-> getScore ($ parameetrid);
         / * ...  Mõned rohkem otsuseid loogika ...  * /
         return ($ parameterScore> 50);
     }
 } 

Kuigi võitmas kasu nõrgalt sidestatud kood lisame keerukust selline, et iga kord, kui objekt on instantiated meil on ka instantiate oma sõltuvuste ja läbivad need liiga. Näiteks selline:

  $ Valik = new DecisionMaker ();
 echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'kõrge')); 

nüüd on:

  $ Dp = new DecisionParameters ();
 $ Valik = new DecisionMaker ($ dp);
 echo $ valik-> makeDecision (array ('vaeva' => 'madal', 'Tagasi' => 'kõrge')); 

See olukord muutub valusam kui mitu sõltuvused klassi tõus, mis siis, kui sõltuvused ise on sõltuvused? See võib üsna kiiresti muutuda objekti haldamine õudusunenägu! Enter sõltuvust süsti mahutid (või raamistike) ...
Jätka lugemist "Quick Start Symfony DI (Sõltuvus Injection) Õpik" »

Alasti Zend_Layout ja Zend_View

Autor , teisipäev 10. august 2010 23:47

Käesolevas artiklis vaatan kasutades Zend_Layout ja Zend_View koos lihtne ees kontroller näidata, kuidas see on võimalik alustada eraldades äriloogika ja esitlemise jooksul oma taotlus. Kõik kood on kättesaadav github:
Alasti Zend_Layout ja Zend_View kohta GitHub .

Jätka lugemist "Naked Zend_Layout ja Zend_View '»

Zend Framework mooduli kohta Layout Seaded - järelmeetmed

Autor , teisipäev 16 veebruar, 2010 20:48

Nagu järelmeetmena minu eelmise postituse kohta moodul põhineb paigutus seaded on Zend Framework , olen uuendanud koodi nõuda vähem konfiguratsiooni siis enne (mitte et see nõudis rohkem, et paar rida oma rakenduse konfiguratsiooni!).
Jätka lugemist "Zend Framework mooduli kohta Layout Settings - Follow Up" »

Loomine URL Zend Custom View Helper

Autor , neljapäev 28. jaanuar 2010 11:01

See võib tunduda lihtne, aga ma olin peksma mu pea püüame luua URL kohandatud vaade abiliseks Zend Framework . Olen suunamises setup mis saab mooduli alamdomeeni kasutusel nii et ma ei saanud kasutada lihtsat hardcoded URL.

Jätka lugemist 'Creating URL Zend Custom View Helper "»

Marsruudi taotlusi sitemap.xml kohandatud kontroller / action

Autor , kolmapäeval 6. jaanuar 2010 12:13

Selleks, et otsesel palvel / sitemap.xml kohandatud töötleja ja tegevust oma Zend Framework taotlus lihtsalt lisada järgmine oma application.ini või alternatiivsete config faili (nt ma kasutan navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = index
 resources.router.routes.sitemap.defaults.action = sitemap

Näiteks koodi kirjutamine võib näha luues tegevuse korral kontroller (nt minu sitemap peitub indeks kontroller, sitemap tegevus):

 < php
 klassi IndexController
     laiendab Zend_Controller_Action
 {
     / **
      * Renders sitemap põhineb Zend_Navigation setup
      * /
     avaliku funktsiooni sitemapAction ()
     {
    	 echo $ this-> view-> Navigatsioon () -> sisukord ();
    	 $ This-> view-> paigutust () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Maps saab kiiresti ja lihtsalt tuleb koguda, kasutades Zend_Navigation , väga kiire juhendaja (ja üldiselt väga kasulik Zend Framework tutorials) on Zend heidab - dünaamiliselt luua menüü sitemap ja riivsai .

Office Grid Computing kasutades virtuaalses keskkonnas - 4. osa

Autor , reedel 4. detsember 2009 11:59

Sissejuhatus

Töötan ettevõttes, kus võtame palju partii töökohad töötlemise miljoneid plaate andmete iga päev ja ma olen mõelnud hiljuti umbes kõik masinad, et istuda ümber iga päev midagi mitu tundi. Kas ei oleks hea, kui saaksime kasutada neid masinaid turgutada töötlemise võimsus on meie süsteemi? Selles kogum esemeid ma lähen vaatama potentsiaalsete tulude tööd kontoris võrku kasutades virtualised keskkondades.

Aastal 3. osa oleme loonud meie virtuaalne töötlemise masin ja luua aknad masinad saada idle tööajaga töötajatele.

Running viimane koodeks

Paratamatult pärast luua oma töötajate äriloogika muutub, vead leitakse, kiirem tõhusam koodi valmistatakse jättes oma töötajad istusid andmete töötlemiseks, kasutades vana haisev kood . Kuidas siis me tagame, et me oleme alati kasutades uusimaid ja parimaid versioon meie töötlemise skriptid?

On mõned väga lihtne, lihtsal viisil me võiksime seda teha, trikk, aga see, et vähendada töötlemise võimsus ja võrguliikluse selle saavutamisel. Võimaldab alustada lihtsam lahendusi ja parandada seda aeglaselt paar iteratsiooni.

Esimene meetod oleks lihtsalt ühendada oma töö kontrolli server (via samba, FTP vms) ja tõmmata alla uusim versioon koodi. Ei ole väga tõhus, kuid ta teeb tööd. Võimaldab parandada seda veidi, kuidas on luua rsync script ja kasutades iga kord, selle asemel? Teise kuidas paneb meie viimane töötlemise skripti õõnestamises kontrollimiseks läbi kood esialgu ja siis lihtsalt ajakohastades meie koodi iga run ( svn uuendada )?

Lõpuks saime lõpuks bash script (kutsutud cron iga 10 minuti järel), mis näeb välja nii lihtne kui see:

  #! / Bin / sh
 kui ps ax | grep-v grep | grep php > / dev / null
 siis
     echo "Töö on praegu töötlemine, exit"
 teine
     echo "Töö ei tööta, alusta siit"
     cd / path / to / töö / copy
     svn uuendada
     php yourJobProcessingScript.php
 fi 

Nüüd võime olla kindlad, et iga joosta me kindlasti töötab uusima koodi. Tagame selle, ajakohastades meie koodi baasi iga kord me sooritame joosta ja vähendada võrguliiklust vaid kandes faili erinevusi meie võrku.

Minu tutvustamise setup, ma tegin täpselt nii, nagu eespool. Subversion paigaldati minu töö töötlemine server ja ma lihtsalt tõmbas viimase koodi "töötaja" filiaal kasutades "svn update '. I lisas ka versiooni number tag mu töötlemise script mis tagastati andmebaasi osana tulemused tagasi. Nii ma nägin, et minu kood oli uuendatakse iga kord, kui ma kopeeritud mu pagasiruumi arvesse töötaja filiaal st et mul oli kindlasti töötab viimane töötlemise script.

Kasutades uusimaid andmeid

Kui teie töö töötlemine kasutab andmeallikate siis mingil hetkel neid saab olema uuendatud liiga. Kui te helistate oma andmete allikad väga harva alusel sa lähed üleujutus oma võrku liikluse niipea kui oma töötajate alata tuues kõike soiku. Minu lahendus ma otsustasin, et tahaks minna minu andmeallikad ringi minu VM.

Hold your hobused seal! Mida teha kui minu andmeallikad on SUUR? Noh see tõesti on tegemist kui palju andmeid me räägime? See võib olla tasuvam paigaldada täiendavaid suurem kõvaketas igasse masina peale, osta täiendava töötluse server. See on küsimus, eelarve ja on kuni äri otsustada. See võib-olla, et teie andmete allikatest on nii suur, et selle lihtsalt võimatu hoida, et andmemaht oma töötaja masinaid. Sel juhul mida sa teeksid? Hästi me võiks vaadata helistades kohalike andmete server, kuid see võib tekitada probleeme võrku. Sel juhul grid süsteem nagu see võib muutuda ebarealistlikuks lisada oma Office'i keskkonnas. Samuti võib olla, et saate otsida alternatiivseid töötab strateegiad, näiteks ainult helistamise töötajate 08:00-6:00 igal õhtul ja / või kuristusta andmeallikas nõuab.

Liikumine kohta saab öelda, meie andmeallikate summa 100GB andmeid. Noh jah see on üsna vähe andmeid, et liikuda võrgustik update. Kuidas me tagame, et oleme viimaste andmete koopia sel juhul? Rsync on üks võimalus, kuid mina isiklikult arvan, käivitades oma viimaseid andmeallikas on teie töö töötlemine server ja määrata käesoleva meister replikatsiooni (koos kena pikk bin log) võib nii minna:

replikatsiooni Seades iga oma töötajaid üles nagu ori töö kontrolli server uudiseid oma allikatele niriseb kenasti oma töötajad ilma tohutult kasvanud võrgustiku tegevuse (st kui te sooritate tohutu andmete uuendamine ja kõik oma töötajate kick in korraga). See on eeliseid rsync et te ei jääks pikk paus enne iga töö; kui andmebaasi uuendused, mysql deemon oma töötaja pidevalt ajakohastab oma andmeid, kui töötlemine jätkub.

See, kuidas ma loodud mu tutvustamistegevuse server. Luua replikatsiooni Ma järgisin juhend mySQL koha ( seadistamine replikatsiooni ) ja 20 minuti jooksul oli mul inital töötaja imitatsiooniga töö kontrolli serverid andmebaasil. Iga täiendava töötaja replikatsiooni seaded ja protsessi töötas iga kord, kui VM kopeeriti.

Kokkuvõte

Selles osas artikkel vaatlesime kuidas lihtne ja valutu see on hoida oma töötlemine kood kuni kuupäeva järgi using rsync või subverion (SVN), et teha tööd ja vähendada võrguliiklust samal time. Samuti arutati, kuidas hoida oma andmeallikast andmed up-to-date, võimaldades sellel nire alla iga oma töötajaid. Seega me piirkond et me kursis äriloogika ja informatsiooni meie kontoris võrgusüsteemi. Seal saab ilmselt lugematuid alternatiive nimetatud ülesannete täitmisel, kuid siin olid kaks lihtsat näidet, et näidata, kui lihtne lahendus saada.

Järgmine kord

Viimases osa sellest seeriast tabavalt nimeks Osa 5 , me arutada rakendades seda süsteemi. Ma kokku, mida on õppinud ja mida mul õnnestus luua.

Office Grid Computing kasutades virtuaalses keskkonnas - 3. osa

Autor , reedel 4. detsember 2009 23:37

Sissejuhatus

Töötan ettevõttes, kus võtame palju partii töökohad töötlemise miljoneid plaate andmete iga päev ja ma olen mõelnud hiljuti umbes kõik masinad, et istuda ümber iga päev midagi mitu tundi. Kas ei oleks hea, kui saaksime kasutada neid masinaid turgutada töötlemise võimsus on meie süsteemi? Selles kogum esemeid ma lähen vaatama potentsiaalsete tulude tööd kontoris võrku kasutades virtualised keskkondades.

Aasta 2. osa me vaatasime töökohti server töötab ja kuidas töökohti peaks olema konfigureeritud, et saavutada suurim summa töötlemine tagades samas, et iga töö on töödeldud ilma jätma.

Luua oma töötaja - või Limp server

Järgmine samm on luua oma virtuaalse töötajaid. Sest seda ma lähen kasutada paigaldamine CentOS kasutades VirtualBox. Ma lähen install mySQL ja PHP server, tuntud ka kui Limp (Li nux, m ySQL, P HP) Servera (I võis näha, et nimi up).

  • Install VirtualBox Windowsi masin (follow link)
  • Laadige alla ja installige CentOS (praegune versioon 5.3) jooksul loodud virtuaalne masin

Ei ole mõtet mulle läheb see seal on ilmselt 1000 's väga õpetused seal (ok, siin on üks: Loomine ja Managing CentOS virtual machine all virtualbox ). Oluline märkida, ma arvan, et ma helistasin oma virtuaalne masin GridMachine.

Niipalju kui minu valikuid virtualisation klient ja operatsioonisüsteemi sinna minna ei ole suur mõjuv põhjus iga valik. VirtualBox on midagi, mida ma kasutada minu kodu masin ja seda toetab kolm suurt operatsioonisüsteemidest. Valisin CentOS oma hea stabiilne OS ja ma kasutan seda minu enda veebiserver. Ma usun õigeid tööriistu selle töö jaoks (kuigi ma olen kohaldamisel "kasutamine kiireim ja lihtsaim For You" mentaliteet siin), nii et kui operatsioonisüsteemi X jookseb oma koodi kiiremini ja tõhusamalt kasutada selle asemel:)

Oluline on veenduda, et teie VM kasutab DHCP, muidu iga uus virtuaalne masin oleks vaja seadistada eraldi mis on midagi, me ei want.By DHCP me ei vaja seadistada võrgu seaded eraldi töötaja masinad, DHCP annan läbi IP teile. Seega saate kopeerida oma virtuaalne masin umbes kontoris muretsemata, milles igaüks up (see parandab mastaapsuse ja vähendab töötaja manustamist).

Protsess, mida peaksid püüdma saavutada oleks saada uue füüsilise masina, paigaldada VirtualBox, ja siis päris palju kasutusele virtuaalne kujutis ilma palju muud. See võib olla mõistlik setup kõik oma töötajate erinevaid subnet, nii et saad vähemalt näha, kui palju masinad töötavad. Peate ka luua oma masinaid pikaajalise rendilepingu või tähtajatu üürileping DHCP.

Kuidas käivitada töökohtade kohta töötaja

See on huvitav ala ja seal on mitmeid kehtiv töötlemis töökohta töötaja. Siin ma lihtsalt arutada kahe kõige ilmsem:

  • Alatasa töötab skript: script, olgu see siis shell skripti või PHP skript käivitatakse üks kord töötaja ja jookseb osana lõputu silmuse. Olen diskonteeritud selle meetodi ühe krahhi script ja potentsiaalselt oma töötajate kaotab käivitada ilma mingi sekkumiseta.
  • Cron stsenaariumis sundtäitmist: iga X minuti cron daemon avalöögi helistada oma script asju läheb. Ilma teatud kontroll võib see kaasa tuua palju palju koopiaid oma töötaja script töötab.

Minu otsus oli minna koos cron mis avalöögi shelliskripti iga 10 minutes. Minu shell script täidab järgmisi ülesandeid:

  1. Get protsesside nimekirja ja grep seda "php". Kui ei leita, siis jätkama.
  2. Helista oma töö kood, minu puhul oleks see midagi PHP põhineb
  3. Töötaja script lõpetab joosta
  4. Valmis minema uuesti järgmisel korral helistada

Minu bash skript näeb välja umbes selline:

  #! / Bin / sh
 kui ps ax | grep-v grep | grep php> / dev / null
 siis
     echo "Töö on praegu töötlemine, exit"
 teine
     echo "Töö ei tööta, alusta siit"
     php yourJobProcessingScript.php
 fi 

Märkus: ECHO on peaaegu täiesti mõttetu, kuid võib aidata järgmise isik, kes tuleb mööda, et proovida ja neid muuta.

See lõpeb looma töötaja virtuaalne masin, kiire, lihtne ja kergesti kopeerida iga uus seade, mis on laekunud. "Nutikust", et grid süsteem tõesti ei ole visualiseeritud OS, selle kõik pistmist kood loodud töödelda töökohti, töö konfiguratsioon ja selles, et töö jookseb vajadusel (st kui peremees on idle ).

Windowsi häälestamine algatamiseks Töötajad

Esimeseks ülesandeks on töötada välja käsu vaja käivitada virtuaalne masin windows käsurealt. Kui olete installinud VirtualBox on vaikimisi asukoht ja olete nimega oma töötaja GridMachine siis käsku vaja laadida oma töötaja on:

  "C: \ Program Files \ Pühap \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Kuid käivitada skripti "peata" riigi peame kasutama:

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

See käivitab virtuaalne masin ilma GUI ja võimaldab tal päästa riik nõtkelt. Teine argument kustub RDP nii see ei ole vastuolus aknad MAK, või anda teile sõnumi kuulata porti 3389.. Virtuaalse masina nimi on tõstutundlik!

Edasi pead määrama aknad kuni avalöögi meie töötaja VM kui masin on idle. Selleks (Windows XP) pead minema Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks alljärgnevalt:

kavandatud ülesanded

Seejärel klõpsa "Lisa Scheduled Task", millele järgneb sirvida lisada kohandatud programmi. Navigeeri oma VBoxManage skript ja klikka ok. Planeerige oma ülesanne iga valikutest (me muuta seda minutis) ja jätkata. Pärast vahele Järgmisel ekraanil windows küsib kes sa tahad teha selle ülesande, ma soovitan kas "Administraator" või luua uus privilegeeritud kasutaja. Pea meeles, me ei taha segada standard töötajad konto masin üheski kohas. Klõpsake nuppu Edasi ja kontrollige näidata arenenud võimalusi selle ülesande täitmiseks.

Lõpuni joosta tekstikasti lisada meie "startvm GridMachine" string ja tagada, et töötavad ainult sisseloginud jääb märkimata. Külasta ajakava ülesanne järgmise ja muuta ajakava rippmenüüst valik ", kui idle", vali Aega soovid masin on idle enne liikuma järgmisele kaardile.

Lõpuks untick variant mis sätestab stop ülesanne, kui see on kestnud X aega, kuid ära märgistada võimalus lõpetada ülesanne, kui masin ei ole enam jõude.

ajakava

Ongi siis windows host setup!

Kokkuvõte

Selles osas oleme loonud virtuaalse masina tegutseda töötaja, samuti sellest, kuidas me nimetame ja täidab meie töö töötlemine skripte (ise PHP script). Siit me vaatame, kuidas luua oma koopiaid windows käivitub virtuaalne masin peata režiimi, kui arvuti muutub tühikäik, ja päästa oma riik, kui kasutaja uuesti kasutamist masin. Loodetavasti sel hetkel näed, kui lihtne on luua selline süsteem ja on sügelus, et saada mõningaid katseid läheb ise!

Järgmine kord

Aasta 4. osa me vaatleme, kasutades vahendeid, et tagada, et te kasutate kõige uuemat versiooni kood ja andmeallikaid, et saadud tulemused on alati up-to-date viimaste äriteabe ja loogika.













Panorama Theme by Themocracy

4 külastajaid online praegu
1 külalist, 3 bots, 0 liiget
Max Külastusi täna: 15 kell 06:43 UTC
See kuu: 19 at 19-08-2011 06:09 UTC
Sel aastal: 130 at 28-03-2011 22:40 UTC
Kõik kokku: 130 at 28-03-2011 10:40 UTC