- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- GoodSpeed: ASUS ROG STRIX B650E-F GAMING WIFI - Memory Context Restory (MCR)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Fűzzük össze a szavakat :)
Új hozzászólás Aktív témák
-
pelyib
tag
válasz hramon94 #18910 üzenetére
http://php.net/manual/en/function.strtotime.php
Végigmész a holidays tömbön, és kivonod egymásból őket:
(strtotime($holidays[$i]) - strtotime($start) > 0) && (strtotime($end) - strtotime($holidays[$i]))Innen már ízlés kérdése, h növelsz egy számlálót vagy gyűjtöd őket egy másik tömbbe...
-
pelyib
tag
válasz bucihost #18922 üzenetére
Bocsi, azt hittem a fejlesztes kozben van ez.
Akkor pedig neked a Cache-control kell: http://httpd.apache.org/docs/current/mod/mod_expires.html
(viszont amig nem jar le addig nem is fog a szerverhez fordulni)A verziozas is egy megoldas, deploy kozben kiszamolja az uj verziot es hozzacsapja a linkekhez, vagy ha nincs ilyen akkor egy bash / php script csinalja ezt x percenkent (vagy valami triggereli a futasat).
Vagy akar amit korabban irtak, hogy request kozben kiszamolja aztan cachebe lerakod y (fel napra pl) idore es kovetkezo request mar tudja hasznalni a cachet (kerdes, hogy ha valtozik valami akkor mi fogja ezt kiutni).
Szoval lehetosegek vannak boven -
pelyib
tag
válasz BlackDevil #19241 üzenetére
Én megnézném a raw respons-át a távoli szervernek, esetleg megváltozott.
+ egy jó tanács: ne írd felül folyamatosan a változóidat. Igencsak meglepő bugokat tud ez okozni.
$rawResponse = file_get_contents("http://{$server}:{$port}/status2.xsl?mount={$mount}");
$arrayResponse = explode("\n", $rawResponse);
$status = explode(",", $arrayResponse[3]);Elnevezéseken végtelenségig lehetne vitatkozni
-
-
pelyib
tag
válasz radi8tor #19383 üzenetére
Tippre erről a fájlról van szó: Github fájl
Ha composerrel van használva akkor töröld a ./vendor mappát és CLI-ből
composer install
, ha nem akkor csak kopipészt oszt jónapot[ Szerkesztve ]
-
pelyib
tag
válasz adika4444 #19373 üzenetére
Enum field legyen ha nem akarsz másik táblát + kapcsoló táblát.
Igaz ha bővül akkor ennél is alter-ni kell a táblát, de legalább a keresés gyors lesz és kevesebb helyet is foglal (mint egy text mező).
Illetve én személy szerint erre az esetre pont nem használnék több flag mezőt inkább a dedikált táblákat tiszta mint a hó. -
pelyib
tag
válasz adika4444 #19397 üzenetére
"le tudom kérni a fenntebbi select-tel együtt az adott alkalmazás platformlistáját"
Igen meg lehet oldani, én két megoldást mondanék:
- Join + group_concat nem szép, illetve ha még plusz adat kell a platform táblából akkor nem működik.
- Lekéred az app listát, kigyűjtőd az ID-t (
WHERE application_id IN (1, 2, 3)
) és a második SELECT queryvel lekéred a hozzájuk tartozó platformokat. Ezek után csak be kell frissíteni a application listád elemeit a megfelelő platformokkal. -
pelyib
tag
válasz radi8tor #19402 üzenetére
Úgy látom, hogy a templatehez nem kell nyúlni. Happy debugging
<?php
$seo = [];
$seoMenuElementChildren = [];
if ($this->user->hasPermission('access', 'extension/extension/module') && $this->config->get('module_301redirect_status'))
{
$redirect301[] = [
'name' => $this->language->get('text_seo_301redirect'),
'href' => $this->url->link('extension/module/301redirect', 'user_token=' . $this->session->data['user_token'], true),
'children' => [],
];
}
if (isset($redirect301))
{
$seoMenuElementChildren[] = $redirect301;
}
if ($this->user->hasPermission('access', 'extension/extension/module') && $this->config->get('module_302redirect_status'))
{
$redirect302[] = [
'name' => $this->language->get('text_seo_302redirect'),
'href' => $this->url->link('extension/module/302redirect', 'user_token=' . $this->session->data['user_token'], true),
'children' => [],
];
}
if (isset($redirect302))
{
$seoMenuElementChildren[] = $redirect302;
}
if (!empty($seoMenuElementChildren))
{
$data['menus'][] = [
'id' => 'menu-seo',
'icon' => 'fa-search',
'name' => $this->language->get('text_seo'),
'href' => '',
'children' => $seoMenuElementChildren,
];
} -
pelyib
tag
válasz adika4444 #19406 üzenetére
Azt szokták mondani, hogy majd optimalizálunk ha kell, addig pedig oldjuk meg, hogy működjön.
Feltételezem a platform tábla nem fog 50 sor fölé menni, esetleg 100 de akkor már mindenféle Linux is benne van. Ez nem lehet tétel.
Az appok listája se hiszem, hogy akár a 10000-t el fogja érni. Megintcsak nem kéne, hogy tétel legyen.
Az application_platform tábla ebből kiindulva max 100x10000=1000000. Nah ez már kezd érdekes lenni. De ettől se kell félni, csak rendesen kell használni az index-ket. Ha nem egy RPIn akarod hostolni akkor ez nem kéne hogy probléma legyen.Szóval lekéred az appok listáját (ha platformra is keres éppen akkor rá kell joinolni az application_platform táblát).
Lesz egy listád, abból ki tudod gyűjteni az application_id-t, a kapott ID listával pedig lekérni a hozzájuk tartozó platformokat:select * from platform inner join application_platform on platform.id = application_platform.platform_id
where application_platform.application_id in (1, 2, 3)
Ezzel meg lehet visszamenni az eredeti application listához és hozzáadni a platformokat."de esetlegesen változhat a platformlista" => mindig az aktuális állapotot kapod vissza, szóval ha nem kell más adat akkor az is müködhet. Ezt te tudod, hogy mi kell a megjelenítési rétegbe
-
pelyib
tag
válasz bandi0000 #19586 üzenetére
Az attól függ, hogy mit akarsz validalni.
Ha a request-t, akkor én a fentebb levő middleware-s megoldást mondanám, azzal az invalid request el se jut a controllerig. De akár saját magad megírt egyszerű class is jó ami csak a Respect\Validation libet használja.
Szóval igen, külön osztály, akár minden endpointhoz egyet-egyet.Ha meg csak a paraméterét egy metodusnak, akkor meg simán ott helyben: Respect\Validation.
És igen szivás meg idő mindent levalidalni, de utána nyugodtabban alszik az ember.
-
pelyib
tag
válasz bandi0000 #19599 üzenetére
Az átadott osztálynak implementálni kell a JsonSerializable interface-t.
-
pelyib
tag
válasz bandi0000 #19601 üzenetére
Általában elé raknak egy dedikált webszervert (Nginx, Apache) ami bizonyos szabályok alapján eldönti, hogy pontosan hogyan szolgálja ki a kérést, esetünkben továbbítja a PHP felé.
Ennek beállítására ~ végtelen leírás van a neten, többek között a Slim oldalán is. -
pelyib
tag
válasz bandi0000 #19630 üzenetére
Nem hiányzik ott egy "/" a models után?
Amúgy az összes kódot (konfiguració ugye másik mappa) illik a "/src" mappába rakni így egy namespaceben van minden kódod
Teszteket csak deven kellenek behúzni.
Pl ahogy az a Composer doksijában is van.[ Szerkesztve ]
-
pelyib
tag
válasz adika4444 #19635 üzenetére
Mit jelent, hogy lassú?
Mi lenne szerinted a gyors, vagy elfogadható futásidő?
Hol futott eddig, ha most már szerveren?
Nem lehet, hogy limit nélkül kéred le DB-ből?Megnézted már mi pontosan a lassú? MySQL lekérdezés, maga a PHP kód futás (ez ugye tiszta PHP-ra értem, nem arra pl.: amikor vár az SQL szerverre), esetleg maga az email küldés a lassú?
-
pelyib
tag
válasz adika4444 #19639 üzenetére
Jól gondolod, a user requestet nem kéne ezzel lassítani. Ott csak csináljon meg egy "task"-t a feldolgozónak. A feldolgozót pedig crontab-ból x időközönként a rendszer futattja.
A "task" lehet egy szimpla flag (mező) a DB "bejegyzesek" táblában, vagy akár egy teljesen külön lévő tábla is. Utóbbi lényegesen rugalmasabb. És akár még MySQL szinten is meg tudod oldani trigger-rel.
-
pelyib
tag
válasz vakondka #19655 üzenetére
Én nem szívnék az object-l, inkább átkonvertálnám sima tömbbé.
Valahogy így. -
pelyib
tag
válasz bandi0000 #19654 üzenetére
A linkelt lib-nek a logger csak opcionális paramétere, szóval ha nem kell, akkor ne add át neki.
-
pelyib
tag
válasz radi8tor #19697 üzenetére
Ebből úgy tűnik Gave rátapintott az egyik megoldásra
Nézz egy phpinfo()-t vagy get_loaded_extensions
[ Szerkesztve ]
-
pelyib
tag
válasz I02S3F #19703 üzenetére
Minnél közelebb a hiba előfordulásához. Ott eldöntöd hogy miként kezeled le. Dobsz egy másik specifikus exceptiont (fail fast) vagy logolod és visszatérsz valami használhatóval.
De ez mindig a helyzettől függ, neked mint fejlesztőnek kell eldöntened mi a helyes megoldás. -
pelyib
tag
-
pelyib
tag
Code styling az mindig ízlés vagy hit kérdése. Ebbe (szerintem) kár belemenni, a lényeg, hogy a csapat / cég megállapodjon és mindenki ahhoz tartsa magát. Különben káosz lesz, az senkinek se jó.
A linkelt oldal nem egy blog post, hanem egy "PHP Standards Recommendation".
Itt találod kik vesznek részt a PSR-k kidolgozásában. A memberek projektjeit elnézve bár lehet, hogy "friss egyetemista" de hogy zéró gyakorlat azt kétlem.Pár példa hogy kik használják, és vették alapul ezeket a sztenderdeket:
- Composer
- Symfony
- Laravel
- Guzzle
- Monolog -
pelyib
tag
válasz radi8tor #19765 üzenetére
Probald meg az empty-t
if (!empty($od[0]['ro']))
{
// ha nem ures, akkor csinaljon valamit
}ui: A pontos hibauzenet sokat segitene (ha ez se mukodik).
ui2: Amugy ez a foreach siman felulirhatja a $data-t ha tobb elem van az 'ro'-ban. En azt csinalnam, hogy a if-ben rogton vissza is ternek. Amibol az is kovetkezik, h a fentebb levo feltetelt is meg lehetne forditani, de ez mar messzire vezet[ Szerkesztve ]
-
pelyib
tag
válasz radi8tor #19780 üzenetére
Null coalescing operator még lehet megoldás. DE ettől még a hiba meglesz, amit korábban kéne elkapni, lekezelni, logolni.
Szóval inkább a valódi okot kéne megtalálni (debugollni), hogy miért / miként juthat odáig a kód ha nincs is semmi hasznos abban a változóban. -
pelyib
tag
válasz radi8tor #19785 üzenetére
Nem azért a 10 fillérért de egy json_encode nem lenne jobb megoldás mint PHP-ban összefűzni a stringet?
Azt már tényleg félek megkérdezni, hogy az egész miért van script tagben. -
pelyib
tag
-
pelyib
tag
válasz zsolti_20 #19884 üzenetére
FB Messengernek pl van browser alapú megoldása is: messenger.com
De ha nem ez akkor egy Google keresés erre: "php chat" fog dobni millió megoldást.
Twitter? Ott is kétirányú a kommunikáció.Ha meg saját akkor egy sima form kell, ehhez egy server oldali script ami lementi (mysql-be, esetleg file) meg egy másik ami kiolvassa és generál egy html-t belőle.
-
pelyib
tag
válasz zsolti_20 #19886 üzenetére
Teljesen jó megoldás
A védelemre megoldás lehet a [htaccess Apache-hoz]
+ HTTPS se ártana (https://letsencrypt.org/)[ Szerkesztve ]
-
pelyib
tag
válasz SunyaMacs #19897 üzenetére
Nem hasznalok CodeIgniter, de a dokumentacioban van egy ilyen:
sess_expiration: "The number of seconds you would like the session to last. If you would like a non-expiring session (until browser is closed) set the value to zero: 0"
Tippre ez kell neked. -
pelyib
tag
-
pelyib
tag
válasz instantwater #19927 üzenetére
Sajnos a neten fellelheto peldak 99% hasonlo megoldasokkal operal. En is es szerintem sokan masok is ezekbol tanultunk.
Onnan meg nagyon messze van meg az "Enterprise Architecture Patterns".
Új hozzászólás Aktív témák
- Commlite CM-EF-NEX Auto-Focus Adapter (Canon EF - Sony E)
- Üzletből, garanciával, legújabb Asus Vivobook 17" i7-1355U 10 mag 5GHz/16RAM/1TBSSD/17,3"FULLHD
- Üzletből, garanciával DeLL XPS 15 9500 i7-10750H 32GBRAM 1TBSSD/GTX1650Ti 15,6"4KTOUCH
- i5 12400f 3070 gamer pc
- DeLL Precision 7740 workstation, üzletből, I7-9850H/32RAM/512GBSSD/NVIDIA QuadroRTX3000/17,3"FULLHD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen