Új hozzászólás Aktív témák
-
coco2
őstag
válasz
pelyib #19750 üzenetére
Nevetséges sor és oszlop pocsékolást, meg stílustalankodást linkeltél. A {-t új sorba rakni széttöri a kód olvashatóságát, annak a blokk kezdő sor végén a helye. 4 space helyett 2. camelCase helyett is snake_case. És ez csak a legeleje a blognak, nem is nézem tovább. Aki azt blogot írta, valami friss egyetemista lehet zéró gyakorlattal.
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
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 -
válasz
#57018880 #19755 üzenetére
Én a Jáva és a C# konvenció keveredésének tartom egy kis egyedi PHP-s maradi fűszerezéssel. Amúgy ha már a PSR-nél tartunk akkor mindenki figyelmébe ajánlanám ezt: phpcs, és vscode bővítmény.
mobal,
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
radi8tor
MODERÁTOR
Kéne egy kis segítség ismét.
Van ez a kódrészlet:
public function getOptionData($product_id, $tax_class_id){
$this->load->model('extension/liveopencart/related_options');
$od = $this->model_extension_liveopencart_related_options->get_ro_data($product_id, true);
$data = [
'model' => false,
'unitprice' => false
];
foreach($od[0]['ro'] as $key => $var){
// var_dump($key);
if(
in_array(end($this->request->post['option']), $var['options']) ||
(!isset($this->request->post['option']) && $var === reset($od[0]['ro']))
){
$unit = ((1 / $var['weight']) * $var['price']);
$taxed = $this->tax->calculate($unit, $tax_class_id, $this->config->get('config_tax'));
$final = $this->currency->format($taxed, $this->session->data['currency']);
$data = [
'model' => $var['model'],
'unitprice' => $final." /(l,kg)"
];
}
}
return $data;
// var_dump($data);
// return $data;
}foreach($od[0]['ro'] as $key => $var){
sorra panaszkodik, hogy:
Invalid argument supplied for foreach() in ....live_price_update.php on line 91Nincs belőle hiba az oldalon, de tele szemeteli a logot ezzel.
Ez a hiba csak akkor jelentkezik, ha olyan termék kerül listázásra, aminek nincs related_option megadva. Szóval a shop termékeinek 85%-nál hibára fut (logban jelentkezik csak).
[ Szerkesztve ]
⭐ Stella
-
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 ]
-
radi8tor
MODERÁTOR
Van másik
PHP Warning: end() expects parameter 1 to be array, null given in live_price_update.php on line 95
⭐ Stella
-
uno20001
csendes újonc
válasz
radi8tor #19768 üzenetére
A
if(
in_array(end($this->request->post['option']), $var['options']) ||
(!isset($this->request->post['option']) && $var === reset($od[0]['ro']))
){
részt cseréld re, erre:
if(
(is_array($this->request->post['option']) && in_array(end($this->request->post['option']), $var['options'])) ||
(!isset($this->request->post['option']) && $var === reset($od[0]['ro']))
){
.U.I.: azért még lehetne csiszolni a logikán, de remélhetőleg működni fog.
[ Szerkesztve ]
-
I02S3F
őstag
Sziasztok! Most tanulom az asszociatív tömböt, ahol két érték kapcsolható össze. Több értéket milyen módon lehet összekapcsolni? (Például: Ügyfél neve, Születési év, Születési város)
[ Szerkesztve ]
-
uno20001
csendes újonc
válasz
I02S3F #19771 üzenetére
Például egy osztályban. Vagy akár így:
$customers = [
[
"name" => "John Doe",
"birthdate" => "1990-05-13"
/*stb.*/
],
[
"name" => "Jane Doe",
"birthdate" => "1995-10-23"
]
/*stb.*/
];
és akkor pl. a második ügyfél neve a
$customers[1]["name"]
. Az objektum-orientált, osztályos megoldás nagyon hasonló, csak az több lehetőséget ad, így szerintem azt mindenképpen megéri megnézni. -
uno20001
csendes újonc
válasz
radi8tor #19774 üzenetére
A
is_array($this->request->post['option']) && in_array(end($this->request->post['option']), $var['options'])
részt cseréld le erre:isset($this->request->post['option']) && is_array($this->request->post['option']) && in_array(end($this->request->post['option']), $var['options'])
-
coco2
őstag
Van itt bárkinek tapasztalata Linux parancssorból / crontabból php script futtatásában? Mennyire lassú / erőforráspocsékoló a php command line interpretere?
[ Szerkesztve ]
កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។
-
radi8tor
MODERÁTOR
Úgy néz ki ez megoldódott, azóta nem láttam olyat a logban.
Tudnátok ebben is segíteni nekem?
Ha egy már nem létező terméket kérdez le Google (404), akkor ilyen bejegyzések kerülnek a logba:
2019-06-16 11:09:48 - PHP Notice: Undefined index: thumb in product.php on line 1082
2019-06-16 11:09:48 - PHP Notice: Undefined index: manufacturer in product.php on line 1083
2019-06-16 11:09:48 - PHP Notice: Undefined index: model in product.php on line 1084
2019-06-16 11:09:48 - PHP Notice: Undefined index: ean in product.php on line 1085
2019-06-16 11:09:48 - PHP Notice: Undefined index: priceISO in product.php on line 1110
2019-06-16 11:09:48 - PHP Notice: Undefined index: stockStatus in product.php on line 1112Az érintett sorok ezek lennének:
$result .= '"image": "'.$data['thumb'].'",'."\r\n";
$result .= '"brand": "'.$data['manufacturer'].'",'."\r\n";
$result .= '"sku": "'.$data['model'].'",'."\r\n";
$result .= '"gtin13": "'.$data['ean'].'",'."\r\n";és
"price": "'. $data['priceISO'] .'",
"availability": "'. $data['stockStatus'] .'",Mivel kellene kiegészíteni ezeket a sorokat, hogy ne panaszkodjon rá PHP engine?
⭐ Stella
-
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. -
válasz
radi8tor #19783 üzenetére
Kezdjük valahogy így:
if (!empty($data)) { ... }
Ezzel így megnézed, hogy a
$data
tömböd vagy objektumod létezik-e (tehát nem null) és nem is üres.Engine alatt a webshop motort értettem
[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
radi8tor
MODERÁTOR
Hát az nem lesz egyszerű.
Ebben a file-ban 270x fordul elő a $data
Vagy csak elég lenne a kifogásolt sorokba tenni ezt?Vagy amit el tudok még képzelni ennek a funkciónak az elejét kellene átírni ami alatt ezek a sorok voltak. Értelemszerűen ennek a résznek nincs eredménye törölt terméknél. A modul fejlesztője nem igazán foglalkozott ezzel.
Opencart 3.0.2.0
[ Szerkesztve ]
⭐ Stella
-
válasz
radi8tor #19785 üzenetére
Hát nem tudom mi lenne a jó megoldás, mi történik ha egy üres sztringet adsz vissza.
Ezt berakhatod a függvény első sorának:
if (empty($data))
return '';[ Szerkesztve ]
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
radi8tor
MODERÁTOR
-
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
-
radi8tor
MODERÁTOR
válasz
pelyib #19794 üzenetére
Ja sejtettem, de nem okozott ez hibát nekem 1+ éve, max annyit hogy szemetelt az error.log-ba.
2019-06-18 19:47:41 - PHP Notice: Undefined index: priceISO in product.php on line 1110
2019-06-18 19:47:41 - PHP Notice: Undefined index: stockStatus in product.php on line 1112Viszont itt más szintaktika kellene, tudnál ebben is segíteni?
$result .= '"offers": {
"@type": "Offer",
"price": "'. $data['priceISO'] .'",
"priceCurrency": "'. $cur .'",
"availability": "'. $data['stockStatus'] .'",
"itemCondition": "http://schema.org/NewCondition",
"url": "'. $this->url->link('product/product', 'product_id=' . $this->request->get['product_id']) .'",
"priceValidUntil": "2099-12-31"
} '."\r\n";Aztán most már tényleg nem nyaggatlak titeket a log tisztításával.
[ Szerkesztve ]
⭐ Stella
-
radi8tor
MODERÁTOR
válasz
pelyib #19796 üzenetére
Ja erre elfelejtettem válaszolni. Köszi a tippet, de sajnos ehhez kevés a tudásom hogy megoldjam.
Lenne egy másik kérdés:
Van egy ilyen kódrészlet a számlázó agentnél:
<input type="text" value="<?php echo $datas['payment_custom_field']; ?>" name="adoszam"/>
A payment_custom_field viszont nem az adószámot tartalmazza, hanem pontosan ezt:
{"1":"1234567-1-12"}Segítenétek átírni a fenti sort (regexp?) úgy, hogy ebből a cella tartalomból csak az adószámot (1234567-1-12) illessze be? Köszi!
[ Szerkesztve ]
⭐ Stella
-
Új hozzászólás Aktív témák
- Philips Evnia 49M2C8900 (49", OLED, 5120x1440, 240Hz, 10bit, Ívelt 1800R, 0,03ms) Új, Bontatlan!
- Laptopok, Pc-k professzionális karbantartása, tisztítása.
- FRISS LISTA!!!! SPÓRÓLJ SZÁZEZREKET! Új bontatlan gamerlaptopok I5/7/9 R7 Rtx 4060-70
- Quad head TV Box - felvevő/streamer
- Samsung Galaxy Tab S7 (SM-T875) 128Gb WiFi/5G gyári billentyűzettel
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen