Találkoztam mojolicious, programozó jegyzetek

Mojolicious (ejtsd: „modzholishes”) - egy új és gyorsan fejlődő webes keretrendszer. Perl-ben írt. És ő írta őket, hogy ne Aby aki, mint Sebastian Riedel, aki az egyik Catalyst fejlesztők. Nemrég Mojolicious tárgya volt heves vita a közösségben Perl-programozó, úgyhogy nem tudtam nem próbálja ki.

1. Mit írjak Mojolicious?

Ha autóval a google szó Mojolicious, megtalálható a következő felülvizsgálat:

Miután elolvasta mindezt, nem értettem a lényeg - mi olyan jó Mojolicious. hogy minden, amit mondanak róla. Tényleg szükségem van rá, vagy ez csak valakinek gondjai az ideális alkalmazás architektúra, tökéletes kódot, és stb? És végül kíváncsisága engem.

2. Telepítés és beállítás

Mojolicious lehet helyezni CPAN, vagy ha a FreeBSD, a kikötőkben. By the way, a FreeBSD jelenleg standard Perl értelmező lett 5,12, mert 5.10 már nem támogatott. Ne felejtsd el, hogy frissítse!

pkg_upgrade -o perl-5.12.3 perl-5.10.1_3
pkg_add -r p5-Mojolicious

Mi szép, a keret nem húzza a nem függőségeket. A Catalyst, ahogy hallottam, húz egy Moose. ami sok csomagot. Ezután létrehoztam az első projekt:

/ Projects / mojolicious / test_app /
CD

/ Projects / mojolicious / test_app /
Mojo generál alkalmazás TestApp

Ekkor a következő könyvtár felépítése:

lib - az összes kódot itt tárolódik
log - rönkök vannak írva itt
köz - statikus fájlok (css, js, képek)
script - Modzholishesa mag
t - az összes vizsgálat
tempaltes - oldalsablonok

Azt is létrehozott egy kis kódot lehet azonnal ellenőrizni akcióban. A alkalmazás futhat az Apache vagy Nginx. de közben hibakeresés sokkal kényelmesebb használni a beépített webszerver Modzholishesa:

/ Test_app / script / test_app démon --restart

Alapértelmezésben a szerver figyeli 3000. port.

Ha azt szeretnénk, véleményem szerint, a beépített web szerver - ez kurva. Többé nem kell torzulhat emelésével helyi Apache. Vagy gyakorlat az írás kódot VIM SSH-n keresztül kapcsolatot. Nem, VIM + SSH - is jó. Mindaddig, amíg az internet minden rendben. Nos, vagy amíg a szükségességét, hogy csak kisebb változtatásokat.

I beépített webszerver csak egy probléma. A Windows (Windows 7 + eper Perl) gomb - -restart valami miért nem működik. Ennek eredményeként, a szerver újra kell indítani manuálisan módosítása után a kódot.

Kiegészítés: Az új verziók Mojolicious eltávolítjuk a kulcsot - -restart. Ehelyett azt javasolta, hogy használják morbo kiszolgáló:

morbo script / test_app

Hogyan kell használni Mojolicious CGI módban FastCGI és PSGI, olvasható Mojolicious :: útmutatók :: Cookbook. Minden nagyon egyszerű. Például becsavarásával Apache CGI módban végezzük egy sorban httpd.conf:

ScriptAlias ​​/ test_app "/ path / to / script / test_app"

... és a csapat ...

cd / usr / local / www / apache22 / data /
chown -R EAX: www. / test_app
chmod -R g + rx. / test_app

... a helyzet javítása érdekében. Mint, minden működik. Azonban, ha megnézi a naplókat az alkalmazás úgy tűnik, hogy valami nem működik jól:

Megszabadulni ilyen üzenetek nagyon egyszerű - csak hozzá ./test_app/lib/TestApp.pm következő:

# Ez a módszer az úgynevezett egyszer, amikor a szerver elindul
sub indítás # 123;
my $ self = műszak;

# Ez az, amit hozzáfűzni:
# Secret jelszót lehet hozzáférni pwgen -s 16
$ Self -> titkos # 40; „* POpRTm; M<;5?fk

3. Útvonal és kezelési érvek

Egy kis füst dokumentáció, azt többé-kevésbé értik azt az általános elvet a keret. Például felvenni a helyszínen egy új oldalt, akkor meg kell adni a TestApp :: startup () metódus a következő:

# A oldal / example-oldal /, a kért eljárás GET:
$ R -> útvonal # 40; '/ Példa-oldal /' # 41; -> via # 40; 'Get' # 41; -> a # 40; 'Példa-oldal # index' # 41; ;

# Ugyanezen az oldalon, a kért eljárás POST:
# -> keresztül ( 'post') -> a (például oldalas # eredményeként ');

# Ha a módszer nem fontos:
# $ R-> útvonal ( '/ például oldalas /') -> a (például oldalas # eredményeként ');

Ezután hozzon létre test_app / lib / TestApp / Példa / Page.pm:

csomag TestApp. Példa. oldal;
használja Mojo. Base 'Mojolicious :: Controller';

# Nyomtatása például oldalas
sub index # 123;
én # 40; $ self # 41; = @_;

# Nagyon akartam írni a lehetőségét vezető rönk
# De én nem tudom, hol dugjon ezt egy sor kód :)
$ Self -> app -> log -> hibakeresés # 40; "Rendering / pl oldalas /." # 41; ;

$ Self -> render # 40; var1 => '123'. var2 => '456' # 41; ;
# 125;

Mint látható, van egy kapcsolat Útvonal:

$ R -> útvonal # 40; „/ Név oldal /” # 41; -> a # 40; „Class # módszer neve” # 41; ;

Oldal nevek ugyanakkor természetesen lehet önkényes. Ha azt szeretnénk, hogy az érveket telt el a felhasználó, ez történik az alábbiak szerint:

# Szerezd meg a nevét minden paramétert:
én @names = $ self -> param;

# Szerezd meg a paraméter neve:
my $ value = $ self -> param # 40; „Név” # 41; ;

# Szerezd meg a paraméter lett átadva a módszer GET:
my $ value = $ self -> req -> query_params -> param # 40; „Név” # 41; ;

# Szerezd meg a paraméter lett átadva a módszer POST:
my $ value = $ self -> req -> body_params -> param # 40; „Név” # 41; ;

Részletek kezelésével kapcsolatos kéréseket is megtekinthető itt.

4. kész sablonok

Otthon már majdnem kész, már csak azt, hogy egy sablont is. Ehhez létre sablonokat / example / page / index.html.ep file:

% Layout 'default';
% Cím 'Preveeed!';

Ez - tesztoldal.
Változó var1 = <% = $var1 %>. és var2 = <% = $var2 %> .
megy

done_testing # 40; # 41; ;

Észrevetted, hogy automatikusan tesztelt felhasználói felület. A teszt futtatása:

/ Script / test_app teszt

6. Tehát mi ad Mojolicious?

Látom a következő előnyöket használja Mojolicious:

  • Azt akarjuk, hogy - CGI, szeretnék - FastCGI, akar - mod_perl. Mint például az Apache - rögzítse az Apache. Mint nginx - rögzítse. Nem szeretem sem egyik, sem a másik - használja a saját webszerver Modzholishesa;
  • Mint látható, Mojolicious egy MVC keretrendszer, és ez most divatos. Ez azt jelenti, hogy lehetővé teszi számunkra, hogy különböző adatok logika
  • Biztonság. Minden, ami megjelenik a sablonok, hacsak kifejezetten másképp, akkor rá, hogy a csere karakterek a stílus PHP-függvény htmlspecialchars (). És mi a helyzet a mindennapok XSS-sebezhetőség lehet elfelejteni. Az összes cookie aláírva HMAC-MD5 (melyek valójában szükség jelszóra). Tehát egy cookie-t tárol csak mi magunk bennük, írunk;
  • Nem kell írni a kerékpárt a mod_rewrite;
  • A sablon a doboz;
  • Unit tesztelés ki a dobozból;
  • Gyorsan egyre prototípusok segítségével Mojolicious :: Lite;
  • Sane hibaüzenetek a böngésző ablakot, és naplók;
  • Tudod, hogy a webes alkalmazás telepítve;
  • A könnyű;
  • Által biztosított rugalmasság stash'em (globális tárolás), pluginek, horgok és segítők. Segítők - kicsi funkciók, mint url_for, ami látható a fenti korábbi minta;
  • Jó dokumentáció, aktív közösség a programozók.

Mintegy dugó. Sok közülük. Különösen érdekes, véleményem szerint, a Session, adatbázis, Mail, beállít, I18n, Cache CSRFProtect. JSUrlFor és ContentManagement.

7. További Infa

Mivel további információforrásokat amellett, hogy a hozzászólások elején felsorolt ​​E megjegyzés, azt ajánlom a következőket:

Kiegészítés: Közlemény azt is megjegyzik, az első tapasztalatom MongoDB. Azt mondta, hogy sokraschalka referenciák írva Mojolicious.

Mint a bejegyzést? Oszd meg másokkal: