ugrás a tartalomhoz

MVC - Időzített feladatok.

s_volenszki · 2009. Jan. 15. (Cs), 16.00
Front kontrolleres felépítésben, hogyan futtassak php értelmezővel értelmezett időzített feladatot?

Mert ugye annak hiába mondom, hogy www.domain.hu/daylitodo/ hiszen az nem böngésző, nem bírja értelmezni a .htaccess-ben felsorolt szabályokat! Szabadítsam rá a kontroller-re direktben, vagy írjak külön egy kontrollert amit csak a cron hivogat?

www.domain.hu/daylitodo/ helyett /user/www/cron/cron.php?daylitodo
 
1

links/lynx/w3m/stb

zila · 2009. Jan. 15. (Cs), 16.05
Hát éppenséggel beteheted cronba ezt:
/path/to/links http://domain.hu/dailytodo 
#vagy
/path/to/lynx /path/to/links http://domain.hu/dailytodo 
#vagy
/path/to/w3m http://domain.hu/dailytodo 
symfony-ban van direkt parancsori (batch) hívásra alkalmas kontroller (ha jól rémlik)
3

Most konkrétan így megy.

s_volenszki · 2009. Jan. 15. (Cs), 16.34
Köszönöm, jelenleg így oldottam meg. Utána nézek ennek a symfony-s parancssori kontrollernek!

s_volenszki
2

biztonság?

gex · 2009. Jan. 15. (Cs), 16.25
biztos hogy az időzített feladataidnak jót tesz, ha bárki elindíthatja?
4

Mire gondolsz pontosan?

s_volenszki · 2009. Jan. 15. (Cs), 16.42
Kifejtenéd bővebben? Nem teljesen értem a kérdést.

Arra gondolsz, hogy ha http alapon lehet cron-olni egy rutint, akkor azt bárki elindíthatja?

Hogyan kellene ezt szabályosan csinálni?
5

teljesen publikus

gex · 2009. Jan. 15. (Cs), 16.54
Arra gondolsz, hogy ha http alapon lehet cron-olni egy rutint, akkor azt bárki elindíthatja?
pontosan arra.

egyrészt feltétlenül fontos neked magába a webalkalmázsba beleírnod azokat a feladatokat? ha nem, akkor írd meg egy külön fájlba a webrooton kívül, abba is be tudod húzni az üzleti logikát.

másrészt nem lesz baj abból, hogy ha te mondjuk mindig éjfélkor akarsz futtatni valamit akkor délben is elindulhat? ez persze a feladattól függ, meg az url-t se fogod belinkelni sehova, de ez akkor is lehet egy biztonsági rés.
6

model?

Sulik Szabolcs · 2009. Jan. 15. (Cs), 17.43
Mondjuk azon nem art elgondolkozni, hogy ez valamilyen feladatot fog ellatni (business logic). Annak pedig nem sok koze van a controllerhez, sokkal inkabb a modelhez.

Az pedig, hogy a modeledet hol / hogyan hasznalod mar csak rajtad mulik. Szvsz ezzel a mostani megoldassal kicsit tevuton jarsz.
7

Segíts megérteni amit mondasz.

s_volenszki · 2009. Jan. 15. (Cs), 20.15
Lehet, hogy rosszul, de én ezt úgy képzeltem el, hogy ebben az esetben a cron lesz a user aki meghívja a www.domain.hu/daylitodo/dothis/1/ hivatkozást. Ugye ez az index.php-ben folytatódik, ami futtatja a kontroller dothedayli() függvényét.

A dothedayli() függvény adatokat kérdez le az adatbázisban a modell vonatkozó függvényeivel, a modellben kialakított üzleti logika szerint, majd az adatokból keletkezik egy kép és elküldésre kerül az admin e-mail címére.

Vajon hol tévedtem el?
9

példa

Hodicska Gergely · 2009. Jan. 15. (Cs), 20.33
* * * * *   www-data /usr/bin/php /path/to/index.php --request="/daylitodo/dothis/1"
12

off

gex · 2009. Jan. 15. (Cs), 21.10
a dayli az daily akart lenni? 10 percig gondolkoztam minek a rövidítése az li. :)
13

#11

s_volenszki · 2009. Jan. 15. (Cs), 21.56
:)
8

fordítva a lovon

Hodicska Gergely · 2009. Jan. 15. (Cs), 20.27
Kicsit fordítva próbálsz ráülni a lóra. Az MVC lényege nem a frontcontroller, hanem a felelősségek megfelelő szeparálása, aminek az lesz az eredménye, hogy a dolgaid újrafelhasználhatóak lesznek más helyzetben, vagy jelen esetben más környezetben.

Lehet pl. egy külön controllered CLI-hez, ami ugyanazt a modellt használja, és egy CLI-hez illeszkedő view-t. De akár lehet olyan a front controller is, hogy képes CLI esetén is működni, és mondjuk paraméterként kapja meg a "kérést", de attól még ennek nem kell úgy kinézi, mintha egy URL-t hívnál meg, illetve szinte biztosan nem kell webről elérhetőnek lenni. Több frameworkben is már láttam ilyesmit, de még nem használtam.
10

Tökéletesen értem!

s_volenszki · 2009. Jan. 15. (Cs), 20.46
Ez a magyarázat nagyon sok kérdésemre választ adott, nagyon köszönöm mindenkinek!
11

Upsz

s_volenszki · 2009. Jan. 15. (Cs), 21.07
mindennapi => daily