Hirdetés
- Motorola Edge 70 - többért kevesebbet
- Xiaomi 15T - reakció nélkül nincs egyensúly
- iPhone topik
- Yettel topik
- Amazfit Helio Strap – képernyőmentesen
- Apple Watch
- Hivatalos a OnePlus 13 startdátuma
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
pelyib
tag
válasz
#68216320
#19993
üzenetére
cli-ben:
belepsz a project konvytarabaphp /eleresi/ut/composer.phar init
Initcializalod a projectet, ertelemszeruen valaszolsz, ezzel letrejon a composer.json file.
Bovebbenmajd
php /eleresi/ut/composer.phar require clegginabox/pdf-merger:dev-master
BovebbenEkkor mar van a project konyvtarban egy ./vendor konyvtar, abban pedig egy autoload.php
Ennek az fajlnak a betoltese kell kb az elso lepesnek lennie az alkalmazasodban.
BovebbenOrom, boldogsag. Ha nem akarsz rogton a projectedben jatszani, akkor letrehozol egy ures foldert, es ott ugyan ezeket megteszed, es figyeled az eredemenyt.
-
pelyib
tag
Gondolom (#19983) Doink kommentjet lattad mar. Pontosan ugy kell, nagyon szepen megirta.
Es igen az vegtelen ciklus (require_once megoldhatja ezt is).Esetleg meg olvasnivalo front controller + rewrite rule
-
pelyib
tag
válasz
csanyiadam
#19979
üzenetére
Ha jol ertem akkor az elso query-nek a checkbox fieldjet explodolni kell es a kapott array-l le kell kerni a tobbi tablabol.
De ha jol ertem akkor neked egy kapcsolo tabla (Association table) kell ami a ket tabla kozotti kapcsolatokat tartalmazza.
Valahogy igy:
form
- form_idform_checkbox
- form_id
- checkbox_idcheckbox
- chekcbox_id
- name"ID azonosítókat több táblából is hivatkozom"
Ugyan azzal az ID-val masra hivatkozni nem szerencses! -
pelyib
tag
Kicsit osszezavarsz, azt irtad, hogy: "úgy megy az oldal, ahogy szeretném" aztan megse?

Nemreg nekunk volt egy hasolno projectunk, PHP backend es .net frontend app (ha jol remlek, de en a PHP-s oldalon voltam) + webview.
Ugy emlekszem, h ott barmelyik bongeszot be tudtak huzni a sracok, elejen nalunk is volt aggodas, de talaltak ra megoldast.
Viszont nalunk ugy ment, h a .net app kommunikalt a PHP app-l es atadta az adatot a webview-ban futo kis webapp-nak.
Valahogy igy:
webapp <-> .net <-> PHP -
pelyib
tag
Be kell tolteni a masik fajlt amibol szeretnel hasznalni valamit.
Ennek tobb megoldasa lehet:
- include, require es tarsai
- sajat autoloader irasa (nagyon nem ajanlott!)
- composer hasznalata (elsore lehet soknak tunik de iszonyat egyszeruve teszi az eletet)Ha csak valamit patkolsz es csak mukodjon, akkor 1. megoldas jo lehet.
Ha tanulsz es erdekel a tema akkor elobb az 1. megoldassal gyors siker lehet, es kozben a 2. megoldasrol olvasni kiprobalni.
Udv a klubban. -
pelyib
tag
válasz
csanyiadam
#19962
üzenetére
Mivel engem is erdekel a tema, hatha a tobbiek is erot kapnak.

Bar nem Youtube vagy FB de a ceghez a php[architect] magazine jon (sajnos elofizeteses), neha van benne erdekes cikk. -
pelyib
tag
Kicsit olyan erzesm van mintha a befott rakna el a nagymamat.
Mi lenne, ha inkabb egy olyan scriptet irnal ami rendesen tudja kezelni a HTTP requesteket, lementi az eredmenyt, es a letrejott fajllal megnyitja az Excel-t.
Ezt a script-t olyan nyelven irod amit ismersz es nem kell megeroszakolni egy POST + request timeout miatt (PHP ilyen).
De valszeg PowerShell / Bash boven elegendo lehet.Amit te akarsz ott nem csak 1 PHP script kell, de kell egy webserver is.
Amugy nem nehez, (#19955) SunyaMacs elso linkje jo lehet, kulso link-nek a valaszat ki kell iratni a kimenetre, es beallitani a content-type-t a megfelelore. -
-
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". -
pelyib
tag
-
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
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/) -
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
-
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
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
#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
-
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
-
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
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
-
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
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
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
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
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. -
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
#19599
üzenetére
Az átadott osztálynak implementálni kell a JsonSerializable interface-t.
-
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
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
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
#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
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
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
-
-
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
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
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...
Új hozzászólás Aktív témák
- Motorola Edge 70 - többért kevesebbet
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Elite: Dangerous
- Azonnali informatikai kérdések órája
- Harcba és Rómába vezet az új AMD Software
- Nikon DSLR topik
- Bluetooth hangszórók
- eMAG vélemények - tapasztalatok
- Tesla topik
- Elektromos autók - motorok
- További aktív témák...
- 2év Garancia,Lenovo Slim 3,i5 12450H(12x4,4Ghz)15,6"FullHD IPS,Magyar vil.bill,16GBDDR5 RAM,512SSD
- Apple Watch 8 45mm Megkímélt/1-3 hónap gar./Akku 89%/p4571
- iPhone 12 Pro Max 256GB Független Megkímélt/1-3 hónap gar./Akku 83%/p4570 1 hónap garanciával:11900
- iPhone 13 128GB Független Használt/1-3 hónap gar./Akku 88%/p4568
- iPhone 13 128GB Független ÚJSZERŰ/1-3 hónap gar./Akku 86%/p4567
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
- BESZÁMÍTÁS! ASRockB450M R5 5600X 16GB DDR4 512GB SSD STRIX RTX 2070 SUPER 8GB GameMax Aero Mini 700W
- Lenovo ThinkPad T14 Gen1 Ryzen5 4650U Refurbished
- GYÖNYÖRŰ iPhone Xs Max 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3537, 100% Akkumulátor
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3464, 96% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



