Archívum - 137651 - Fórum téma
június 21
PHP - kivételek szerializálása
Üdv.
Nem akartam ennek külön blog bejegyzést, mert annyira kis dolog, úgyhogy ide teszem be.Ha sima Exception-t akarunk szerializálni, vagy annak valami leszármazottját, akkor az egész stack trace-t is szerializálja a php az összes benne lévő változóval. Ez vicces dolgokat tud okozni, mondjuk amikor a munkamenet kezelő objektumok meg hasonlók is belekerülnek...
Egyébként mindez űrlap validáláshoz kell nekem. Jelenleg úgy oldom meg, hogy a validator-tól el lehet kérni egy kivétel példányt, ha hiba van, és utána eldobni, vagy menteni, attól függően, hogy mi a szitu... Felhasználóbarátabb űrlapoknál így vissza lehet küldeni az eredeti űrlaphoz munkamenet változókban a hiba okát. Azért ezt a módszert választottam, mert működik rá az automatikus kiegészítés, és lehet nézni a típusokat. Ha mondjuk típuskóddal, vagy bármi mással küldeném vissza a hiba okát, az sokkal nehezebben kezelhető lenne.
■ Nem akartam ennek külön blog bejegyzést, mert annyira kis dolog, úgyhogy ide teszem be.
class Clean_Exception extends Exception {
public function __sleep() {
return array_keys(get_object_vars($this));
}
}
Egyébként mindez űrlap validáláshoz kell nekem. Jelenleg úgy oldom meg, hogy a validator-tól el lehet kérni egy kivétel példányt, ha hiba van, és utána eldobni, vagy menteni, attól függően, hogy mi a szitu... Felhasználóbarátabb űrlapoknál így vissza lehet küldeni az eredeti űrlaphoz munkamenet változókban a hiba okát. Azért ezt a módszert választottam, mert működik rá az automatikus kiegészítés, és lehet nézni a típusokat. Ha mondjuk típuskóddal, vagy bármi mással küldeném vissza a hiba okát, az sokkal nehezebben kezelhető lenne.
Kódkiegészítés
Sziasztok!
Olyan gondom van, hogy egy számomra nagyon tetsző framework-ot (CodeIgniter 2.1.0) és - szerintem - nagyon jó szerkesztőt (Komodo Edit 6) használok, de nincs kódkiegészítésem a CI "gyári" osztályaihoz és az általam írtakhoz sem. Ez nekem elég nagy probléma, úgy gyorsaságban, mint szintaktikai hibalehetőségként.
Próbáltam a Komodo-t "ráuszítani" a használt könyvtárakra (még egyenként is, bár elvileg az alkönyvtárakat is felveszi), de a plafon - jelenleg - az, hogy egy-egy helpernél működik. Ezek nem definiálnak osztályt, csak függvényeket.
Gondolom, a CI
Letöltöttem már a Komodo 7-et és a CI-ből is van már 2.1.1, de egyelőre nincs időm azokkal kísérletezni, de ha valaki azt mondaná, hogy akkor megoldódik a probléma, akkor a következő projektre már úgy készülnék.
Megköszönök minden észrevételt, elsősorban azok válaszát várom, akik használják/használták a fent említett szoftvereket.
Üdv. Pepita
■ Olyan gondom van, hogy egy számomra nagyon tetsző framework-ot (CodeIgniter 2.1.0) és - szerintem - nagyon jó szerkesztőt (Komodo Edit 6) használok, de nincs kódkiegészítésem a CI "gyári" osztályaihoz és az általam írtakhoz sem. Ez nekem elég nagy probléma, úgy gyorsaságban, mint szintaktikai hibalehetőségként.
Próbáltam a Komodo-t "ráuszítani" a használt könyvtárakra (még egyenként is, bár elvileg az alkönyvtárakat is felveszi), de a plafon - jelenleg - az, hogy egy-egy helpernél működik. Ezek nem definiálnak osztályt, csak függvényeket.
Gondolom, a CI
load->library(...) osztály betöltése/kezelése körül van valami trükk, amit a Komodo "nem ért". Annyira még nem bengéztem át a kódják, hogy rájönnék. Illetve valószínűleg nem is tudok eleget hozzá, legalábbis tartok tőle. (Kicsit még mindig idegen az interpreteres OOP.) A saját doksijában erre nem térnek ki, csak kb. annyi van, hogy "ha betartod ezeket és ezeket a név/fájlnév/könyvtár szabályokat, akkor hú de jó neked, használhatod a loadert és csak egyszer fogja betölteni stb."Letöltöttem már a Komodo 7-et és a CI-ből is van már 2.1.1, de egyelőre nincs időm azokkal kísérletezni, de ha valaki azt mondaná, hogy akkor megoldódik a probléma, akkor a következő projektre már úgy készülnék.
Megköszönök minden észrevételt, elsősorban azok válaszát várom, akik használják/használták a fent említett szoftvereket.
Üdv. Pepita
június 20
Kérdés: PHP kód "megvédése" hogyan?
Sziasztok!
Egy olyan problémában kérném segítségeteket, hogy mi a teendő akkor, ha ha ügyfelem csak akkor hajlandó fizetni, ha a szerverére töltöm fel a kódokat, de sajnos félő, hogy egyszerűen lemásolja, s elfelejt fizetni. Sajnos a program nagy részét már feltöltöttem a szerverére, eddig ott tesztelték, de a programozója elszólta magát, hogy nagyon átlátható a kód, könnyű benne módosítani. Ezek után a többit a sajátomra töltöttem fel, ahol fut is jól, tesztelte is, de nem hajlandó fizetni, csak akkor, ha azt az Övére is feltöltöm. Olyan ötletet kérnék, ami vagy egy idő után "megsemmisíti" a kódokat, avagy úgy van becsomagolva, hogy az visszafejthetetlen. (md5 hash stb-t ismerem, nekem sem sok idő visszafordítani).
A jótanácsokat nem kérem, hogy szerződés meg ilyesmi, nincs pénzem ügyvédre, hogy pereskedjek.
Hasznos, gyakorlati tanácsot várnék.
Üdv:
Zsolesz
■ Egy olyan problémában kérném segítségeteket, hogy mi a teendő akkor, ha ha ügyfelem csak akkor hajlandó fizetni, ha a szerverére töltöm fel a kódokat, de sajnos félő, hogy egyszerűen lemásolja, s elfelejt fizetni. Sajnos a program nagy részét már feltöltöttem a szerverére, eddig ott tesztelték, de a programozója elszólta magát, hogy nagyon átlátható a kód, könnyű benne módosítani. Ezek után a többit a sajátomra töltöttem fel, ahol fut is jól, tesztelte is, de nem hajlandó fizetni, csak akkor, ha azt az Övére is feltöltöm. Olyan ötletet kérnék, ami vagy egy idő után "megsemmisíti" a kódokat, avagy úgy van becsomagolva, hogy az visszafejthetetlen. (md5 hash stb-t ismerem, nekem sem sok idő visszafordítani).
A jótanácsokat nem kérem, hogy szerződés meg ilyesmi, nincs pénzem ügyvédre, hogy pereskedjek.
Hasznos, gyakorlati tanácsot várnék.
Üdv:
Zsolesz
Kép igazítás probléma
Sziasztok!
Valószínűleg én vagyok az analfabéta és mivel angolul nem tudtam megfogalmazni a problémám, nem tudtam érdemi találatot kicsikarni a keresőből, így felteszem a kérdést:
Lényegében van egy konténer div 336 pixel széles belső térrel. 360(padding: 0 12px);
Ebbe a konténerbe pakolnék 7 darab 48x48-as képet ami együtt elvileg pont 336 pixel;
A Firebug-al nem mentem sokra, viszont egy outline beállításával a képeken látszik, hogy a képek között kb 2 pixel széles tér van, ami miatt az utolsó kép lecsúszik új sorba;
Valószínűleg én vagyok az analfabéta és mivel angolul nem tudtam megfogalmazni a problémám, nem tudtam érdemi találatot kicsikarni a keresőből, így felteszem a kérdést:
Lényegében van egy konténer div 336 pixel széles belső térrel. 360(padding: 0 12px);
Ebbe a konténerbe pakolnék 7 darab 48x48-as képet ami együtt elvileg pont 336 pixel;
A Firebug-al nem mentem sokra, viszont egy outline beállításával a képeken látszik, hogy a képek között kb 2 pixel széles tér van, ami miatt az utolsó kép lecsúszik új sorba;
június 19
Liskov substitution principle
Ezen már régóta töröm a fejem: OK, ezek nem kőbe vésett szabályok, csak elvek, de ha ragaszkodom a S.O.L.I.D. L betűjének betartásához, akkor mi értelme a felüldefiniálható metódusoknak az OO nyelvekben? Hiszen ennek épp az a lényege, hogy az adott metódus működését megváltoztatom. Nem?
Mi az amit rosszul értelmezek?
Valahol erről már beszéltem valakivel, de nem találom, a memóriám meg... :-(
--------------------------------------------
(Itt találtam egy magyar leírást. Úgy látszik, az angolom hiányosabb, mint képzeltem. És a felfogóképességem is. Továbbra sem értem, de attól tartok, ezek után hiába próbálja bárki elmagyarázni, nem fogom megérteni. :-(
■ Mi az amit rosszul értelmezek?
Valahol erről már beszéltem valakivel, de nem találom, a memóriám meg... :-(
--------------------------------------------
(Itt találtam egy magyar leírást. Úgy látszik, az angolom hiányosabb, mint képzeltem. És a felfogóképességem is. Továbbra sem értem, de attól tartok, ezek után hiába próbálja bárki elmagyarázni, nem fogom megérteni. :-(
június 18
Include és a változók
Másik fórumon került szóba, de... Na mindegy, szóval kíváncsi lennék a ti véleményetekre.
Adott egy PHP program, ami itt-ott include-dal betölt egy kódrészletet és az így betöltött részben az include-ot kiadó környezet változóit használja.Nekem szokás szerint, eléggé... khm... "sarkos" véleményem van a dologról. :-)
Szerintetek ez mennyire kulturált megoldás?
Én egyetlen esetet tudok elképzelni, amikor elfogadhatónak tartom: ha template-ként PHP-t használok. Bár ott is vannak kétségeim.
■ Adott egy PHP program, ami itt-ott include-dal betölt egy kódrészletet és az így betöltött részben az include-ot kiadó környezet változóit használja.
$x=1;
include "x.php"
...
és az x.php felhasználja, esetleg átírja a $x értékét.
Szerintetek ez mennyire kulturált megoldás?
Én egyetlen esetet tudok elképzelni, amikor elfogadhatónak tartom: ha template-ként PHP-t használok. Bár ott is vannak kétségeim.
június 17
C-ben char tömböt hogyan adok vissza egy függvényben?
char* TopOrBottom (char character, int width) {
char str[width];
str[0] = '*';
int i = 1;
for (i = 1; i < width - 1; ++i) {
str[i] = character;
}
str[width - 1] = '*';
str[width] = 0;
return str;
}user@pc:~/dev/c/pprint$ gcc -Wall -W -Werror pprint.c -o pprint
pprint.c: In function ‘TopOrBottom’:
pprint.c:22:5: error: function returns address of local variable [-Werror]
cc1: all warnings being treated as errors
pprint.c: In function ‘TopOrBottom’:
pprint.c:22:5: error: function returns address of local variable [-Werror]
cc1: all warnings being treated as errors
június 16
iframe helyet 'a' tag?
Sziasztok, azt szeretném kérdezni, hogy az 'a' tag-nek megadott 'href' attribútum ami egy php fájlra mutat képes e megvalósítani azt amit egy 'iframe'-mel lehet, azaz pl. egy komplett űrlapot ágyazzak be egy külső weboldalba.
Iframe-mel megy, de az nem mindenhol engedélyezett, ezért szeretném 'a' tag-gel. Ebben az esetben, hogyan kell eljárni? Köszönöm!
■ Iframe-mel megy, de az nem mindenhol engedélyezett, ezért szeretném 'a' tag-gel. Ebben az esetben, hogyan kell eljárni? Köszönöm!
június 15
Bekezdés eleji évszámnál Markdown sajátosság kikerülése?
Markdownban számozott felsorolást úgy definiálunk, hogy a bekezdést számjeggyel kezdjük, amit egy pont karakter követ -- sajnos éppen úgy, ahogyan a magyar helyesírás szerint az évszámokat írjuk.
Ezért nem nyilvánvaló, hogy mi a legjobb módja Markdown használatakor az olyan bekezdés írásának, ami évszámmal kezdődik.
Milyen megoldást javasolnátok erre azon kívül, hogy átfogalmazzuk az érintett bekezdést?
■ Ezért nem nyilvánvaló, hogy mi a legjobb módja Markdown használatakor az olyan bekezdés írásának, ami évszámmal kezdődik.
Milyen megoldást javasolnátok erre azon kívül, hogy átfogalmazzuk az érintett bekezdést?
Apache, symlink -> 403
Helló guruk!
Elkövettem egy olyan manővert, hogy Apache kiszolgálón használatba vettem az userdir modul kiegészítést. Létre hoztam a public_html nevű mappát a kívánt helyen és le is teszteltem egy index.html-el amit fel is hozott.
Na most a home mappámon belül van egy Projects nevű mappa amiben vannak webes projektek, ez egy szinten van a public_html mappával. A Projects mappából szeretnék pár almappát belinkelni a public_html-be, de akárhogy konfigolom az Apache-ot 403-at kapok válsz gyanánt. Már próbáltam a FollowSymLinks opciót, de semmi. Nem indexeli amit belinkelek, ha pedig el akarom érni 403-at dob.
Lehet, hogy komplett mappát nem lehet linkelni???
Jelenleg vissza álltam az eredeti konfigurációra:Nem vagyok Apache guru sajnos, aki segít annak megköszönöm.
■ Elkövettem egy olyan manővert, hogy Apache kiszolgálón használatba vettem az userdir modul kiegészítést. Létre hoztam a public_html nevű mappát a kívánt helyen és le is teszteltem egy index.html-el amit fel is hozott.
Na most a home mappámon belül van egy Projects nevű mappa amiben vannak webes projektek, ez egy szinten van a public_html mappával. A Projects mappából szeretnék pár almappát belinkelni a public_html-be, de akárhogy konfigolom az Apache-ot 403-at kapok válsz gyanánt. Már próbáltam a FollowSymLinks opciót, de semmi. Nem indexeli amit belinkelek, ha pedig el akarom érni 403-at dob.
Lehet, hogy komplett mappát nem lehet linkelni???
Jelenleg vissza álltam az eredeti konfigurációra:
karvaly@ubuntu:~$ cat /etc/apache2/mods-enabled/userdir.conf
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>
karvaly@ubuntu:~$



