Archívum - 2017
szeptember 15
Tiszta kód
janoszen egy másik fórumszálban linkelte egy OOP példakódját egy kezdő kérdésére válaszolva, ehhez lennének kérdéseim és hozzáfűznivalóm, ezért kiemeltem egy külön témába.
A programból le lehet vonni azt a következtetést, hogy OOP-t ott lehet érdemes használni, ahol egy bizonyos funkciót legalább kétszer megvalósítunk, mert ad egy szabványos interface-t, amivel tudunk kommunikálni.
Viszont itt jön a kérdés, hogy hol találkozunk ilyen bonyolultságú projekttel? Hol van szükség arra, hogy ugyanolyan típusú adatokat (mondjuk blogbejegyzés) két vagy több különböző adatforrásból halásszunk össze?
Hol van szükség arra, hogy akár többféle router is lehet a rendszerben? Ha viszont csak egyet használ a projekt (márpedig a fenti blogmotorban csak egy van), akkor miért van általánosan megvalósítva? Hisz így egyrészt van egy minimális overhead, másrészt plusz munkával jár. De ki tudja, hogy mit hoz a jövő? Mi lesz, ha a mostani router interface nem megfelelő? Akkor lehet refaktorálni, azaz fölösleges melót tett bele az, aki a jelenlegit írta.
Felmerülhet az is, hogy miért keverednek a php és a sablon fájlok? Mi közük van egymáshoz? De ez apróság.
Kérdés, hogy tényleg olyan kivételes helyzet, ha olyan konfigurációs beállítást kérdezünk le, ami nem létezik? Ettől a program futásának meg kell állnia?
Kérdés, hogy miért van több kivétel definiálva, amikor nincsenek kifejtve, azaz a kódjuk megegyezik?
Kérdés, hogy a BlogPostInteractor miért példányosítja a kétféle lekérdezési módot? Mi van, ha egy adott oldalon csak az utolsó n darab bejegyzésre van szükségünk, de az egyes posztokra nem? Ez is egy apró overhead.
Kérdés, hogy ha a kivételek típusa (Exception) megjelenik a fájlnévben, akkor az interface-eké miért nem?
Kérdés, hogy kezdőknek ez alapján kéne elkezdenie programozni?
---
Értem én, hogy példakód, de azért ez egy kezdő számára ijesztő lehet.
A programból le lehet vonni azt a következtetést, hogy OOP-t ott lehet érdemes használni, ahol egy bizonyos funkciót legalább kétszer megvalósítunk, mert ad egy szabványos interface-t, amivel tudunk kommunikálni.
Viszont itt jön a kérdés, hogy hol találkozunk ilyen bonyolultságú projekttel? Hol van szükség arra, hogy ugyanolyan típusú adatokat (mondjuk blogbejegyzés) két vagy több különböző adatforrásból halásszunk össze?
Hol van szükség arra, hogy akár többféle router is lehet a rendszerben? Ha viszont csak egyet használ a projekt (márpedig a fenti blogmotorban csak egy van), akkor miért van általánosan megvalósítva? Hisz így egyrészt van egy minimális overhead, másrészt plusz munkával jár. De ki tudja, hogy mit hoz a jövő? Mi lesz, ha a mostani router interface nem megfelelő? Akkor lehet refaktorálni, azaz fölösleges melót tett bele az, aki a jelenlegit írta.
Felmerülhet az is, hogy miért keverednek a php és a sablon fájlok? Mi közük van egymáshoz? De ez apróság.
Kérdés, hogy tényleg olyan kivételes helyzet, ha olyan konfigurációs beállítást kérdezünk le, ami nem létezik? Ettől a program futásának meg kell állnia?
Kérdés, hogy miért van több kivétel definiálva, amikor nincsenek kifejtve, azaz a kódjuk megegyezik?
Kérdés, hogy a BlogPostInteractor miért példányosítja a kétféle lekérdezési módot? Mi van, ha egy adott oldalon csak az utolsó n darab bejegyzésre van szükségünk, de az egyes posztokra nem? Ez is egy apró overhead.
Kérdés, hogy ha a kivételek típusa (Exception) megjelenik a fájlnévben, akkor az interface-eké miért nem?
Kérdés, hogy kezdőknek ez alapján kéne elkezdenie programozni?
---
Értem én, hogy példakód, de azért ez egy kezdő számára ijesztő lehet.
szeptember 13
INNER JOIN probléma
Sziasztok!
Új problémába ütköztem és ennek megoldásában kérnék segítséget.
Adott a lekérdezés, melyet össze kellene vetnem az egy évvel ezelőtti adatokkal és csak a közös elemeket listázni.Ezt hogy lehet egy körben lekérdezni? Köszönöm.
■ Új problémába ütköztem és ennek megoldásában kérnék segítséget.
Adott a lekérdezés, melyet össze kellene vetnem az egy évvel ezelőtti adatokkal és csak a közös elemeket listázni.
SELECT * FROM reszletek
INNER JOIN tabla
ON reszletek.id=tabla.id
WHERE tabla.szolgalat = '2'
AND reszletek.kesz = '1'
AND reszletek.adatbazis = '6'
AND reszletek.frissites_datum
BETWEEN '2016-01-01' AND '2016-08-31'
GROUP BY tabla.id
SELECT * FROM reszletek
INNER JOIN tabla
ON reszletek.id=tabla.id
WHERE tabla.szolgalat = '2'
AND reszletek.kesz = '1'
AND reszletek.adatbazis = '6'
AND reszletek.frissites_datum
BETWEEN '2017-01-01' AND '2017-08-31'
GROUP BY tabla.id
szeptember 11
Session biztonsági ellenőrzés
Sziasztok! Adott egy weboldal, amin eddig úgy ment a felhasználók session adatainak ellenőrzése, hogy a felhasználó nevét, aktivitását stb. ellenőriztem, azonban minden különálló oldalon ugyanolyan módon, az oldal elejére beillesztve a kódot. Mivel szeretném áttekinthetőbbé tenni az oldalak kódját, ezért arra gondoltam, hogy kiraknám egy külső fájlba a webrooton kívül, ahonnan a phpval require_once beolvasnám és funkcióként minden oldal elejére helyezném. Két dolog jutott eszembe:
Mi van, ha nem létezik a bekért include? Ekkor automatikusan leáll a php fordítása fatális hibával már a kód elején, tovább nem lehet használni.
Mi van, ha nem létezik a szükséges function? Ebben az esetben szintén fatális hibával le fog állni a php fordító, tovább az oldal nem használható.
A require_once esetében kézzel (saját kódon belül, nem felhasználói input) felvitt útvonallal adom meg a biztonsági ellenőrzést végző függvény fájlját.
Okoz-e biztonsági problémát ez, mire kell figyelnem ezeken kívül?
illetve
Kevésbé lesz-e biztonságos a weboldal, ha ilyen módon történik a felhasználók jogosultság vizsgálata ahelyett, hogy minden oldal elején ugyanaz a kód szerepelne? A function sessiont vizsgál, amit eddig minden oldal eleje tett meg.
Köszönöm a segítséget!
■ Mi van, ha nem létezik a bekért include? Ekkor automatikusan leáll a php fordítása fatális hibával már a kód elején, tovább nem lehet használni.
Mi van, ha nem létezik a szükséges function? Ebben az esetben szintén fatális hibával le fog állni a php fordító, tovább az oldal nem használható.
A require_once esetében kézzel (saját kódon belül, nem felhasználói input) felvitt útvonallal adom meg a biztonsági ellenőrzést végző függvény fájlját.
Okoz-e biztonsági problémát ez, mire kell figyelnem ezeken kívül?
illetve
Kevésbé lesz-e biztonságos a weboldal, ha ilyen módon történik a felhasználók jogosultság vizsgálata ahelyett, hogy minden oldal elején ugyanaz a kód szerepelne? A function sessiont vizsgál, amit eddig minden oldal eleje tett meg.
Köszönöm a segítséget!
szeptember 5
Laravel 5 routing
Sziasztok,
Laravel 5-ben nem jöttem még rá egy routinggal kapcsolatos probléma megoldására, minden segítség jól jönne.
A route fájlok kisebb fájlokra van bontva, minden "csomaghoz" tartozik egy.
Egy /budapest url estén szeretnék olyat, hogy
- először megnézi pl a videók route fájljában, hogy tud-e visszaadni valamit (mondjuk ahol a videó nevében benne van a "budapest")
- ha nincs semmi, akkor megy tovább a képek route fájljába, hogy van-e budapest nevű kép,
- ha nincs, akkor nézi a települések "csomaghoz" tartozó route fájlban, hogy van-e budapest nevű település.
Az url szerkezeten nem tudok változtatni, tehát nem lehet (/kepek/budapest, /videok/budapest).
Ha esetleg egy nagy route fájl lenne, ez pedig a legvégén, akkor is kéne egy nagy callbackbe gányolás...Route fájlokba belegányolni amúgy sem szeretek ilyet, több controllert hívogatni meg fura lenne :)
Vagy esetleg a route-ba adott callback-ben egy exceptiont dobni (vagy return null :), ami után a route listából jönne a következő, így maradhatna szétbontogatva...
Került már valaki ilyen helyzetbe?
Tudtok erre egy -lehetőleg- szép megoldást?
Köszi előre is
■ Laravel 5-ben nem jöttem még rá egy routinggal kapcsolatos probléma megoldására, minden segítség jól jönne.
A route fájlok kisebb fájlokra van bontva, minden "csomaghoz" tartozik egy.
Egy /budapest url estén
Route::get('{url}', .....)
- először megnézi pl a videók route fájljában, hogy tud-e visszaadni valamit (mondjuk ahol a videó nevében benne van a "budapest")
- ha nincs semmi, akkor megy tovább a képek route fájljába, hogy van-e budapest nevű kép,
- ha nincs, akkor nézi a települések "csomaghoz" tartozó route fájlban, hogy van-e budapest nevű település.
Az url szerkezeten nem tudok változtatni, tehát nem lehet (/kepek/budapest, /videok/budapest).
Ha esetleg egy nagy route fájl lenne, ez pedig a legvégén, akkor is kéne egy nagy callbackbe gányolás...
Route::get('{url}', function($url, ImageRepository $imageRepository, VideoRepository $videoRepository, SettlementRepository $settlementRepository) {
// van kép?
$imageRepository->findByUrl($url);
// ha nincs kép
$videoRepository->findByUrl($url);
// ha nincs videó
$settlementRepository->findByUrl($url);
});
Vagy esetleg a route-ba adott callback-ben egy exceptiont dobni (vagy return null :), ami után a route listából jönne a következő, így maradhatna szétbontogatva...
Került már valaki ilyen helyzetbe?
Tudtok erre egy -lehetőleg- szép megoldást?
Köszi előre is
szeptember 4
Mekkora méreteknél érdemes több docker container-be darabolni az alkalmazást?
Mekkora méreteknél érdemes több docker container-be darabolni az alkalmazást?
■ augusztus 23
hangosítás
Tisztelt Cím! A végzettséghez nem kötött vállalkozási tevékenységeknél, de a végzettséghez kötöttnél sem találtam a HANGOSÍTÁS-t. A vállalkozásba szerepel a hangfelvétel készítés. Kérdésem, számlázható-e a hangosítás, vagy milyen tevékenységet kell a vállalkozásba beépíteni. Kösszönöm
■ augusztus 22
Bocsánat kérés, Tatai László
Tisztelt Weblabor közösség.
Bocsánatot szeretnék kérni, mert régebben azt írtam a PHP listára, hogy könnyű programozni, és nehéz fizikai munkát végezni.
Tisztelettel : Tatai László
■ Bocsánatot szeretnék kérni, mert régebben azt írtam a PHP listára, hogy könnyű programozni, és nehéz fizikai munkát végezni.
Tisztelettel : Tatai László
augusztus 20
postfix_spam_spamhaus_rbl
Sziasztok, kérdésem a következő lenne:
Adott egy Ubuntu/Postfix/Amavis/SpamAssasin/Clamav kombó
A spamszűrés részben jó, viszont az RBL restriction-el baj van.
Postfix main.cf rész tartalma:
[CODE]
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_helo_access regexp:/etc/postfix/helo_access,
check_helo_access regexp:/etc/postfix/blacklist_helo,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname,
reject_rhsbl_helo zen.spamhaus.org,
permit
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_client_access mysql:/etc/postfix/mysql-virtual_client.cf,
permit_sasl_authenticated,
reject_unknown_client_hostname,
reject_unknown_reverse_client_hostname,
reject_unauth_pipelining,
reject_rbl_client sbl.spamhaus.org,
reject_rhsbl_client dbl.spamhaus.org,
reject_rbl_client b.barracudacentral.org,
permit
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_sender_access regexp:/etc/postfix/tag_as_originating.re,
check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf,
check_sender_access regexp:/etc/postfix/tag_as_foreign.re,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
permit
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf,
check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unknown_recipient_domain,
reject_non_fqdn_sender,
reject_invalid_hostname,
reject_unknown_sender_domain,
check_client_access ha
Adott egy Ubuntu/Postfix/Amavis/SpamAssasin/Clamav kombó
A spamszűrés részben jó, viszont az RBL restriction-el baj van.
Postfix main.cf rész tartalma:
[CODE]
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_helo_access regexp:/etc/postfix/helo_access,
check_helo_access regexp:/etc/postfix/blacklist_helo,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_helo_hostname,
reject_rhsbl_helo zen.spamhaus.org,
permit
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_client_access mysql:/etc/postfix/mysql-virtual_client.cf,
permit_sasl_authenticated,
reject_unknown_client_hostname,
reject_unknown_reverse_client_hostname,
reject_unauth_pipelining,
reject_rbl_client sbl.spamhaus.org,
reject_rhsbl_client dbl.spamhaus.org,
reject_rbl_client b.barracudacentral.org,
permit
smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_sender_access regexp:/etc/postfix/tag_as_originating.re,
check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf,
check_sender_access regexp:/etc/postfix/tag_as_foreign.re,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
permit
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf,
check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unknown_recipient_domain,
reject_non_fqdn_sender,
reject_invalid_hostname,
reject_unknown_sender_domain,
check_client_access ha
Google algoritmus frissítések
Kinek mi a véleménye az egyre gyakoribb Google algoritmus frissítésekről, és ez mennyire befolyásolja a SEO keresőoptimalizálás sikerességét napjainkban ? SEO szakemberek Google csoport
■ augusztus 17
Üzenet
Sziasztok!
Egy olyat szeretnék összehozni, hogy üzenet lehessen küldeni, névvel. Az oldalon egyszerre csak 1 üzenet jelenlen meg és 5 percenként mutassa a következő üzenetet. 1 Személy csak 10 percenként tudjon üzenetet küldeni. Esetleg tudtok linkeket küldeni ami alapján ezt meglehet valósítani?
Köszönöm előre is!
■ Egy olyat szeretnék összehozni, hogy üzenet lehessen küldeni, névvel. Az oldalon egyszerre csak 1 üzenet jelenlen meg és 5 percenként mutassa a következő üzenetet. 1 Személy csak 10 percenként tudjon üzenetet küldeni. Esetleg tudtok linkeket küldeni ami alapján ezt meglehet valósítani?
Köszönöm előre is!