- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
- One mobilszolgáltatások
- iPhone topik
- Olcsó Galaxyk telepíthetik a One UI 7-et
- Milyen GPS-t vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Google Pixel topik
Új hozzászólás Aktív témák
-
modder
aktív tag
Ahha, ez érdekes, ezek szerint csak beépített típusokra működik, és objektum esetén pont úgy viselkedik, mint pl. a Java, és nem úgy, mint C++ (ott ugye objektumot is simán lemásolja, ha nem referenciaként van átadva).
Tömbnél nem meglepő módon lemásolja az egész tömböt (ebből indultam ki a példámnál):
function test($var)
{
$var['bar'] = 'foobar';
}
$foo = array('bar' => 'baz');
print $foo['bar'] . "\n"; // baz
test($foo);
print $foo['bar'] . "\n"; // bazEzek szerint objektumnál fölösleges is referencia szerint átadni abban az esetben, amit az előző hozzászólásomban írtam.
Kösz a helyesbítést
-
-
modder
aktív tag
válasz
Speeedfire #14996 üzenetére
igen, referencia szerinti átadás van, szerintem csak rosszul használtad ezt a "hint" kifejezést. A & jel nem egy "hint" az interpreternek.
-
fordfairlane
veterán
válasz
Speeedfire #14996 üzenetére
Hát, akkor én nagyon félreértettem valamit, mert nekem pont az jött át, hogy ha referenciát használ, akkor ugyan arra a változóra hivatkozik és nem másolja át a memóriába.
Este írok regényt erről az egész paraméterátadás-témakörről.
-
Speeedfire
félisten
válasz
fordfairlane #14994 üzenetére
Hát, akkor én nagyon félreértettem valamit, mert nekem pont az jött át, hogy ha referenciát használ, akkor ugyan arra a változóra hivatkozik és nem másolja át a memóriába.
Ergó van egy 5k-s tömb, amit átadok referenciával egy függvénynek, amit ott helyben feldolgozok akkor nem foglal le neki helyet a memóriában, hanem ugyan azt használja fel.Referencia szerinti paraméterátadást akkor érdemes használni, ha a függvény paramétereket módosítani akarod.
Ezt a függvény paraméter módosítást nem értem. -
belefutottam egy hibába aminek a hatékony javítására nincs túl jó ötletem (ötlet van ami működik, de nem hatékony
)
szóval van egy php fájl ami CSS-eket tölt be és az összerakja és "tömöríti" a css-t. Viszont kaphat paraméterként is fájlt a webről:
pl: <domain>css.php?fajl=css/teszt.css
viszont amire eddig nem gondoltam (illetve gondoltam de azt hittem evidens, hogy a ../-rel ne lehessen mászkálni a fájlrendszerben, de lehet) ezt hogyan lehet hatékonyan kivédeni?
arra gondolok, hogy nincs valami apache / php beállítás ami a document rootból nem engedi ki a phpt? -
fordfairlane
veterán
válasz
Speeedfire #14993 üzenetére
Jó tudni, hogy vannak ilyen "hint-ek" is, amivel "takarékoskodni" lehet.
Pont arról ír, hogy memóriatakarékoskodás miatt nincs értelme referenciát használni. Tipikus premature optimization, ami the root of all evil.
Referencia szerinti paraméterátadást akkor érdemes használni, ha a függvény paramétereket módosítani akarod.
-
-
modder
aktív tag
válasz
Speeedfire #14991 üzenetére
a copy-on-write memória modell miatt csak akkor kell referenciát használnod, ha paraméterben átadott változón akarsz úgy változtatni, hogy megtartsa az új értékét visszatérés után, csak ezt ugye illik metódus fejkommentjében feltüntetni.
Egyébként el tudom képzelni, hogy jóval hatékonyabb lehet nagy objektumok esetén, mintha visszatérnél:
public function csinalValamitObjektumon($objektum) {
$objektum->adat = 5; // lemasolja az $objektumot
return $objektum;
}
$objektum = new Objektum();
$objektum = csinalValamitObjektumon($objektum);Ennél jobb, ha referenciaként adod át, és nem térsz vissza vele.
http://hengrui-li.blogspot.hu/2011/08/php-copy-on-write-how-php-manages.html -
Speeedfire
félisten
Ha a spórolás a célod akkor nem hiszem, hogy sokat nyernél vele.
Ez szerintem attól függ, mennyire komplex a feladat/megoldás. Sok kicsi sokra megy.
Pl anno írtam, hogy excel fájlt generálok 60k+ sorral, ami phpexcel-el kb 1 óra volt. Addig-addig alakítottam, okosítottam az eljárásokat, hogy 3 perc alatt megcsinálja.
Sk8erPeter:
Ezt meg hogy érted, hogy "jobb, mint a pointer"?
Nem kell a memóriával foglalkozni, a rendszer elvégzi helyettünk és egyszerű alkalmazni.Hát azért nem kell ennyire megörülni neki, akkor használd, ha valóban szükséges, erőltetni nem kell.
Én sem arra gondoltam, hogy eszetlenül elkezdem használni. -
Sk8erPeter
nagyúr
válasz
Speeedfire #14975 üzenetére
"Ez talán még jobb is, mint a pointer.
"
Ezt meg hogy érted, hogy "jobb, mint a pointer"?"Ezek után gyakrabban fogom alkalmazni, ahol ennek szükségét érzem.
"
Hát azért nem kell ennyire megörülni neki, akkor használd, ha valóban szükséges, erőltetni nem kell. -
cucka
addikt
válasz
fordfairlane #14988 üzenetére
Szerintem nincs félreértés. Annyi van, hogy objektumot csak explicit módon tudsz érték szerint átadni (értsd: manuálisan le kell klónozni, majd a másolattal hívni a kérdéses függvényt/metódust)
-
cucka
addikt
Arra jó, ha olyan függvényt szeretnél írni, ami a paraméteren végez műveleteket és nem tér vissza semmivel. (Vagyis hát visszatérhetsz, de minek szopasd magad még jobban?) . Más szóval a függvényednek mellékhatásai vannak.
Amúgy nem javaslom a használatát, előnyösebb, ha a függvények mellékhatásmentesek.(#14983) fordfairlane
Szerintem nem keverte senki, jól írták. (Referenciatípus az nem is tudom, hogy micsoda amúgy)
-
fordfairlane
veterán
Kissé mintha kevernétek a PHP függvény paraméterátadást, a referenciatípusokat, a referencia szerinti paraméterátadást, és hogy az mire is jó tkp. A többi stimmel.
-
válasz
Speeedfire #14975 üzenetére
Szerintem ezt csak extrém esetben. Ha a spórolás a célod akkor nem hiszem, hogy sokat nyernél vele.
-
moltam88
tag
válasz
Speeedfire #14975 üzenetére
Délután találtam még egy érdekes dolgot, de csak most tudtam utána nézni:
A referencia szerinti paraméterátadás nagyobb objektumok, tömbök esetén jelentősen gyorsabb mint az érték szerinti. Korábban a jobb teljesítmény elérése céljából nagy figyelmet kellett erre fordítani a paraméterátadás módjának, viszont PHP 5.0 bevezetésével megjelent a copy on write technika, melynek lényege, hogy az érték szerint átadott paraméter nem másolódik le a hívás pillanatában. A másolás lusta módon történik, csak abban az esetben, ha módosításra, írásra kerülne sor.
ForrásHivatalos dokumentációban pedig itt szerepel.
Szerintem így nem kell nagyon foglalkoznod a referencia szerinti paraméterádással, ha csak nincs rá kifejezetten szükséged.
Ez nekem is új dolog
-
Speeedfire
félisten
válasz
Sk8erPeter #14974 üzenetére
Ez talán még jobb is, mint a pointer.
Ezek után gyakrabban fogom alkalmazni, ahol ennek szükségét érzem. -
Sk8erPeter
nagyúr
válasz
Speeedfire #14970 üzenetére
Az előzőekhez még annyit, hogy PHP-ben nincsenek - pl. C-ből, C++-ból megismert - mutatók. Referenciák vannak:
http://www.php.net/manual/en/language.references.whatare.php"What References Are
References in PHP are a means to access the same variable content by different names. They are not like C pointers; for instance, you cannot perform pointer arithmetic using them, they are not actual memory addresses, and so on. See What References Are Not for more information. Instead, they are symbol table aliases. Note that in PHP, variable name and variable content are different, so the same content can have different names. The closest analogy is with Unix filenames and files - variable names are directory entries, while variable content is the file itself. References can be likened to hardlinking in Unix filesystem."
Ezeket amúgy érdemes átfutni:
http://www.php.net/manual/en/language.references.php -
Speeedfire
félisten
trisztan94 & moltam88: Köszi!
-
moltam88
tag
válasz
Speeedfire #14970 üzenetére
By default, function arguments are passed by value (so that if the value of the argument within the function is changed, it does not get changed outside of the function). To allow a function to modify its arguments, they must be passed by reference.
Vagyis alapértelmezetten érték szerinti paraméterátadás történik, új memóriát foglal a paraméternek.
-
trisztan94
őstag
válasz
Speeedfire #14970 üzenetére
Szerintem csak pointer, legalábbis a legtöbb normális OOP nyelv így működik.
-
Speeedfire
félisten
Ha van egy változóm, amit átadok egy függvénynek akkor az csak a memória mutatót adja át, vagy lefoglal egy újabb memória darabot?
pl:$data = array(1,2,3,4,5);
functionName($data) {
return $data;
} -
Sk8erPeter
nagyúr
válasz
pakriksz #14968 üzenetére
"Mint írtam, ha nincs benne azonos sor, akkor hozzá kell adni! Így az update nem jó ide."
Bocs, igazad van, én voltam a hülye, kevertem a REPLACE INTO ... SET ...-szintaktikával...Ami egyből be is illeszti az új sort, ha nincs olyan még.
De tulajdonképpen előnyt nem hoz ahhoz képest, amit most használsz, szóval a korábbit, amit írtam az UPDATE-tel kapcsolatban, inkább felejtsd el, bullshit, visszavonom."» "INSERT INTO stats (ip, user, downloads) VALUES (:userip, :user, 1)
ON DUPLICATE KEY UPDATE downloads = downloads + 1"
Erre már ír hibát, méghozzá hogy "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':userip, :user, 1) ON DUPLICATE KEY UPDATE downloads = downloads + 1' at line 1""
Azért az jó, hogy kihangsúlyoztam, hogy ezt direkt PDO prepared statement-es szintaktikával írtam, és hogy nézd meg, amit itt írtam...
Nyilvánvaló, hogy ez így nem fog működni, amíg nem megfelelő módon használod.
A :userip-nek és a :user-nek a query-ben szükséges egy megfeleltetés, értéket kell adni neki a query előkészítése után, így működnek a prepared statementek. Előnyük, hogy az SQL Injection általuk nem lehetséges.
Direkt azért linkeltem be azt a hsz.-emet, mert ott írtam példákat, hogy lehet átírni PDO-sra a lekéréseket.De akkor berakom neked ide is, a saját példádhoz igazítva (ha el nem írom):
// csatlakozás
$db = new PDO(
'mysql:host=localhost;dbname=test_db', // test_db-t módosítsd a megfelelő adatbázisnévre
'root', // módosítsd
'1234', // módosítsd
array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;', // egyből UTF-8-ra fogja állítani kapcsolódás után a karakterkódolást
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // kivételeket fog dobálni probléma esetén
)
);
$query = 'INSERT INTO stats (ip, user, downloads) VALUES (:userip, :user, 1)
ON DUPLICATE KEY UPDATE downloads = downloads + 1';
$stmt = $db->prepare ( $query );
$stmt->bindValue( ':userip', $userip );
$stmt->bindValue( ':user', $user );
$stmt->execute();ez fog dobni egy exceptiont, amit try-catch-blokkal kellene lekezelned. A [B]rowCount[/B]-metódusra ez vonatkozik:
http://hu1.php.net/manual/en/pdostatement.rowcount.php#109891
"Daniel Karp ¶1 year ago
Note that an INSERT ... ON DUPLICATE KEY UPDATE statement is not an INSERT statement, rowCount won't return the number or rows inserted or updated for such a statement. For MySQL, it will return 1 if the row is inserted, and 2 if it is updated, but that may not apply to other databases."Tehát ha a korábbi kód után írsz egy ilyet:
$affected_rows = $stmt->rowCount();
Akkor ezek szerint MySQL esetén az $affected_rows 1-et fog tartalmazni, ha új sor lett beszúrva, illetve 2-t, ha update-elve lett egy korábban már beillesztett sor.
Így ellenőrizheted, mi a query-d eredménye. -
pakriksz
őstag
válasz
Sk8erPeter #14967 üzenetére
"INSERT INTO stats (ip, user, downloads) VALUES (:userip, :user, 1)
ON DUPLICATE KEY UPDATE downloads = downloads + 1"Erre már ír hibát, méghozzá hogy "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':userip, :user, 1) ON DUPLICATE KEY UPDATE downloads = downloads + 1' at line 1"
Mint írtam, ha nincs benne azonos sor, akkor hozzá kell adni! Így az update nem jó ide.
-
Sk8erPeter
nagyúr
válasz
pakriksz #14965 üzenetére
Pont itt tettem fel a kérdést költőien, ezelőtt 3 hsz.-szel, hogy hogyan lehetséges, hogy a mai napig ennyi összefűzött query van a kódokban, mikor a normális tutorialok első helyen kellene, hogy felhívják a figyelmet rá, hogy ez így gáz.
Ez a "nem csinál semmit, de hibaüzenet sincs" biztos? Hogyan kéred le a hibaüzeneteket?
Egyébként meg ennek a szintaktikának:$sql="INSERT INTO stats (ip, user, downloads) VALUES (:userip, :user, 1)
ON DUPLICATE KEY UPDATE downloads = downloads + 1";tulajdonképpen nem sok értelmét látom (még ha egyébként helyes is!), amikor a következő:
UPDATE stats SET downloads = downloads+1
WHERE ip=:userip AND user=:user;szerintem sokkal beszédesebb.
Itt a query-ben direkt használtam a prepared statementes szintaktikát, a másik belinkelt hsz.-emben láthatsz példát rá, hogyan kéne átírni ezt a kódodat, hogy ne legyen összefűzött a query (mivel lehet, hogy nem megbízható adat, ha pl. query stringből érkezik, mindig érdemes a legrosszabbra számítani).
Hogy hogyan ellenőrzöd, hogy sikeres volt-e a query, vagy pedig történt valami hiba, azt is meg kellene mutatnod.=========================
(#14966) PumpkinSeed :
nincs mit. -
PumpkinSeed
addikt
válasz
Sk8erPeter #14964 üzenetére
Ahhoz képest, hogy ilyen információ szegényen adtam meg köszönöm a választ így is cselekszem ugyanis működik a változtatással.
Amúgy Drupal 6, és a modul verziószámát már nem tudom.
-
pakriksz
őstag
Ezzel mi a probléma?
$sql="INSERT INTO stats (ip, user, downloads) VALUES ('$userip','$user',1) ON DUPLICATE KEY UPDATE downloads = downloads + 1";Merthogy nem csinál semmit, de hibaüzenet sincs.
Ellenben így
$sql="INSERT INTO stats (ip, user, downloads) VALUES ('$userip','$user',1)";
működik.Egyébként azt szeretném, hogy az ip és a user egy kombinált primary key, és ha a hozzáadandó sornál ezek az értékek egyeznek a táblában lévővel, akkor a downloads számot emelje meg 1-el, és ne adja hozzá újra ugyan azt a sort.
-
Sk8erPeter
nagyúr
válasz
PumpkinSeed #14946 üzenetére
Ezt ugye vágod?
Igaz, itt nem core módosításáról van szó, hanem egy moduléról, de a modulok kódjába is csak végső esetben kéne beletákolni, hiszen egy update során úgy, ahogy van, elúszhatnak a módosításaid (hiszen update-eled a modul teljes könyvtárát) - aztán szenvedhetsz vele, hogy az azóta esetleg jelentősen megváltozott kódbázisba valahogyan megint belehegeszd. Tehát saját modulból vagy sminkből éri meg ilyenkor módosításokat végezni.
VAGY ha úgy nem megoldható, akkor megnézed, van-e frissebb változat a modulból; megnézed az issue queue-ban, nyitottak-e már topicot az adott problémának drupal.org-on, a modul vonatkozó hibalapján, született-e már patch a hiba megoldására; ha nem nyitottak, nyitsz issue-t, beleírod a problémát, és annak megoldását egy patch formájában. Elsőre bonyolultnak hangzik, de nem az, gyorsan megvan. Cserébe segítettél a közösségnek, ha jó a patch, akkor elfogadhatja a fejlesztő, és committolhatja, majd ha pusholja, akkor jó esetben feltünteti a nevedet; mindenesetre a dev-ágban máris elérhető lesz a javításod.Egyébiránt nekünk még azt sem árultad el, hogy a Drupalból és magából a modulból hányas változatot használod. Meg hogy egyáltalán milyen fájl sorairól beszélsz...
Ezenkívül van Drupal topic. -
Sk8erPeter
nagyúr
Nem nézegettem még a kódját ilyen szinten, de most elég nagyot csalódtam a WordPress-ben (legalább tudom, minek a kipróbálásával ne akarjam tölteni egy percemet sem
), hogy ilyen elképesztő ordas nagy baromság ott virít szépen a dokumentációban, ami elvileg arra való, hogy a fejlesztők és érdeklődők tanuljanak belőle. Először azt hittem, viccelnek, aztán majd ott lesz a vigyorgós fej, hogy jól van, csak vicceltünk, ne vegyél mindent olyan komolyan, de sajnos komolyan gondolják.
Ez az "olyan, mint a f*szom, egy igazi csődtömeg, bottal sem piszkálnám" mondatrészleted igen érdekesen hangzik, remélem, azt vágod.
Furcsa egy (ön)kritika.
Mondjuk ezen legalább jót röhögtem.
-
Sk8erPeter
nagyúr
válasz
csabyka666 #14955 üzenetére
$sql = "SELECT * FROM tabla WHERE id=$value"; //ez így persze nem fut le, de a lényeget értitek...
hogyan lehetséges az, hogy a mai napig látni összefűzött query-ket (NAGY HIBA!!), amik a potenciális veszélyforrásokat szépen magukba foglalják? Úgy értem, régen sokkal inkább tele volt a net akkora szar tutorialokkal, amikből az ember kezdőként sem győzött kukázni, szelektálni, hogy na most melyikben bízzak - de ma már van Google által nagyon jól indexelt Stack Overflow, ahol szerencsére legtöbbször a fejére koppintanak annak, aki ilyen csúfságokat akar elkövetni, meg van számtalan tutorial, ahol elsők között hívják fel a figyelmet arra, hogy sose bízz a felhasználótól érkező vagy általa bármilyen módon módosítható inputban, amikor adatbázis-lekéréssel foglalkozol.
Nézz utána az SQL Injection fogalmának, aztán pedig a PDO-nak és a prepared statementeknek. Így nem kell tartanod SQL Injectiontől.
Normális esetben ez valahogy így nézne ki csatlakozás után:// csatlakozás
$db = new PDO(
'mysql:host=localhost;dbname=test_db', // test_db-t módosítsd a megfelelő adatbázisnévre
'root', // módosítsd
'1234', // módosítsd
array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;', // egyből UTF-8-ra fogja állítani kapcsolódás után a karakterkódolást
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // kivételeket fog dobálni probléma esetén
)
);
$query = 'SELECT ez, az, amaz FROM tabla WHERE id=:id'; // inkább sorold fel a valóban szükséges mezőket, ne mindig a *-ot használd!!
$stmt = $db->prepare ( $query );
$stmt->bindValue( ":id", $value, PDO::PARAM_INT );
$stmt->execute();
foreach ($stmt as $row) {
echo 'ez: '.$row['ez'].', az: '.$row['az'].', amaz: '. $row['ez'];
}Itt láthatsz még bőven példát PDO használatára:
http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers#Executing_prepared_statements_in_a_loopItt bindParam()-ot használ:
$values = array('bob', 'alice', 'lisa', 'john');
$name = '';
$stmt = $db->prepare("INSERT INTO table(`name`) VALUES(:name)");
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
foreach($values as $name) {
$stmt->execute();
}Itt egy példa tranzakciók használatára:
try {
$db->beginTransaction(); // note that calling beginTransaction() turns off auto commit automatically
$db->exec("SOME QUERY");
$stmt = $db->prepare("SOME OTHER QUERY?");
$stmt->execute(array($value));
$stmt = $db->prepare("YET ANOTHER QUERY??");
$stmt->execute(array($value2, $value3));
$db->commit();
} catch(PDOException $ex) {
//Something went wrong rollback!
$db->rollBack();
echo $ex->getMessage();
} -
trisztan94
őstag
válasz
PumpkinSeed #14960 üzenetére
Egy fény nélküli szénakazal.
-
PumpkinSeed
addikt
válasz
trisztan94 #14958 üzenetére
Milyen az a sötét szénakazal?
-
DNReNTi
őstag
válasz
Tele von Zsinór #14950 üzenetére
Ahan köszi!
Én is ezt vettem ki a leírásokból, csak nem értettem miért kellene nekem több autoloader. -
trisztan94
őstag
válasz
csabyka666 #14957 üzenetére
Akkor félreértettem.
Tehát nem az a baj, hogy nem fut le az SQL fetch minden id-re?
Azt írtad, hogy a $value értéke az jó a foreach-ben, mert kiírva rendesen írta ki. Akkor itt az egyedüli dolog ami kell az, ohgy a foreach cikluson belül minden egyes ciklusba lépéskor fetch-eled.
Nem tudsz kódot mutatni? Így elég nehéz a sötét szénakazalban megtalálni azt az egy szénaszálat, ami neked kell.
-
válasz
trisztan94 #14956 üzenetére
Húh, ezt nem értem. Van a foreach, abban van benne maga az SQL parancs (SELECT * stb...), illetve ugyancsak a foreach-en belül fetchelem ki a sorokat is.
Vagy hogy...?
-
trisztan94
őstag
válasz
csabyka666 #14955 üzenetére
Berakod a PDO (vagy MySQLi) query-t futtató kódot a foreach-be.
-
Üdv mindenkinek!
A segítségetekre / véleményetekre lenne szükségem.
Készítettem egy cookie-t, amit tömbként kezelek, és az elemein foreach-el megyek végig. Eddig érzésem szerint még működik a dolog, mert echo-val kiírja, hogy melyik elemnél tart éppen, tehát a bejárás rendben van.
A probléma, hogy van egy SQL lekérdezésem is, és én azt szeretném elérni, hogy minden egyes ciklusban más-más SQL lekérdezés fusson le - a cookie tartalmának megfelelően, és a problémám igazából az, hogy nem tudok belenyúlni az SQL parancsba minden ciklusban.Sablonosan ez a helyzet:
foreach($c as $value){
$sql = "SELECT * FROM tabla WHERE id=$value"; //ez így persze nem fut le, de a lényeget értitek...
[...]
}
Azt szeretném elérni, hogy a $value értéke minden egyes ciklusban változzon meg, a $c aktuális értékére (ez meg is történik), és ezzel az új értékkel fusson le a lekérés (ez már nem). Ezt hogy tudom elérni?
A konkrét helyzet: a cookie-ban számok vannak, amik egy bevásárlókosár egyes elemeinek indexei (amiket kosárba rakott a felhasználó), és a kosár tartalmát szeretném kilistázni, ezért lenne szükségem az aktuális index-szel történő lekérdezésre.
Szerintem a kód maga jó, mert ha manuálisan átírom a WHERE záradékban az indexet, akkor azokat listázza ki, amik a kosárban vannak.
Köszönöm a segítséget előre is!
-
PumpkinSeed
addikt
válasz
trisztan94 #14953 üzenetére
Köszönöm, viszont már leadtuk az ultra okos adminnak, hagy csinálja meg ő...
-
trisztan94
őstag
válasz
PumpkinSeed #14952 üzenetére
-
PumpkinSeed
addikt
válasz
trisztan94 #14951 üzenetére
Az a baj, hogy ami létezik ilyen téren 4 óra alatt mindet végig próbáltuk...
-
trisztan94
őstag
válasz
PumpkinSeed #14946 üzenetére
Nem localhost.domain.hu-ra gondolt az admin? Mert már láttam olyat.
-
-
DNReNTi
őstag
válasz
Sk8erPeter #14945 üzenetére
OMFG
Szörnyülködés közben erre valaki?Közben találtam olyat hogy spl_autoload_register de nem egészen értem miért lenne jobb ezt használni mint az __autoload-ot. Ezt valaki el tudná magyarázni?
-
cucka
addikt
válasz
Sk8erPeter #14945 üzenetére
Az egész WP kódbázis olyan, mint a f*szom, egy igazi csődtömeg, bottal sem piszkálnám. Szóval ez a linkelt idézet teljesen beleillik a képbe.
-
PumpkinSeed
addikt
Olyan problémám lenne egy drupalos honlappal, hogy szeretném az imagemenu modulnál beállítani, hogy új ablakban nyissa meg ha rákattintunk. Na viszont ha bepipálom, hogy New Window akkor egy hibaüzenetet dob miszerint hiányolja a target oszlopot a field list query-ből. Sajnos nincs phpmyadmin hozzáférhetőségünk mert a nagyon intelligens admin csak annyit mondott, hogy az elérhetőség: localhost, de egy teljesen másik intézményben vagyunk. Nem lehet ezt valahogy drupalon belül megoldani. Illetve hozzáférünk a php állományokhoz amikben meg is találtuk a 134 sorban lévő lekérdezést, de ha a $item['target'], illetve a target = %d kiszedjük akkor lefut a New window de mivel azt a részt nem updateolja ezért nem is lesz meg a kívánt eredmény.
-
Sk8erPeter
nagyúr
Most eme kérdés kapcsán kíváncsiságból nézegettem néhány WordPress-doksit, és most kikerekedett szemekkel olvastam ezt a napiszar.hu-színvonalú állítást:
http://codex.wordpress.org/I_Make_Changes_and_Nothing_Happens#See_Where_You_Are
"The die() command is probably the single most useful debugging tool available."Az igen. Gratulálok, WordPress, elég szomorú, hogy ilyen szegénységi bizonyítványt sikerült kiállítani magatokról.
Xdebug, egy normális IDE, rendes debuggolási procedúra? Áááá, ugyan már, az luxus.
-
DNReNTi
őstag
Villámkérdés:
Osztályok betöltésére az __autoload(); még menő vagy van már valami szebb rajabb megoldás? Köszi! -
Alukard
senior tag
Sziasztok!
A hétvégén kókányoltam egy űrlap generátort (és validálót, de az még nem 100-as)...
Szeretnélek megkérni titeket, hogy (ha van időtök és kedvetek) próbáljátok ki és mondjátok el a véleményeteket -
pakriksz
őstag
hello
Egy nyilván egyszerű dolgot szeretnék php-ban megcsinálni:
A php oldalt egy url paraméterrel lenne lehívva, és annyit kéne csinálnia, hogy minden lehíváskor eltárolja egy mysql adatbázisban az url paramétert, és a lehívó gép ip címét, ha többször hívja le ugyan az az ip ugyanazzal a paraméterrel akkor csak egy számláló növekszik.De annyira nem szeretnék a php-ba belemászni, mert csak ennyi kéne.
-
cucka
addikt
válasz
CSorBA #14937 üzenetére
A key a tömb belső pointeréhez tartozó kulcsot adja vissza. Lásd next, prev, end, current
pl így tudod kiiratni a kulcsokat.
$tomb["geza"] = array("gyumolcs" => "alma", "szin" => "piros");
$tomb["zsolt"] = array("gyumolcs" => "szilva", "szin" => "lila");
$tomb["agnes"] = array("gyumolcs" => "citrom", "szin" => "sarga");
while (null !== key($tomb)){
print key($tomb)."\r\n";
next($tomb);
}
mod: amúgy használj foreachet. ez a tömb belső pointeres dolog farokság. -
CSorBA
őstag
A key funkcióval ütköztem egy kis nem értem miért így van dologba
Szóval a példakódom:
$tomb = array();
$tomb["geza"] = array("gyumolcs" => "alma", "szin" => "piros");
$tomb["zsolt"] = array("gyumolcs" => "szilva", "szin" => "lila");
$tomb["agnes"] = array("gyumolcs" => "citrom", "szin" => "sarga");
foreach ($tomb as $k => $v) {
echo "kulcs: ".$k." - gyumolcs: ".$v['gyumolcs']." - szin: ".$v['szin']."<br/>";
}
foreach ($tomb as $e) {
echo "kulcs: ".key($e)." - gyumolcs: ".$e['gyumolcs']." - szin: ".$e['szin']."<br/>";
}Első foreach kimenete:
kulcs: geza - gyumolcs: alma - szin: piros
kulcs: zsolt - gyumolcs: szilva - szin: lila
kulcs: agnes - gyumolcs: citrom - szin: sargaMásodik foreach kimenete:
kulcs: gyumolcs - gyumolcs: alma - szin: piros
kulcs: gyumolcs - gyumolcs: szilva - szin: lila
kulcs: gyumolcs - gyumolcs: citrom - szin: sargaNos. A key nem a tömböm kulcsát adja vissza? A második foreachben a $tomb 3 tombot tartalmaz, melynek a kulcsai geza, zsolt, agnes. Ezt az első $key => $value foreach-nél szépen meg is kapom. A másodiknál pedig olyan mintha a $tomb tombomben lévő egyes nevekhez tartozó tömbben lévő első elem (ami szintén tömb) első kulcsát adja vissza, ami a gyumolcs. Ez normális? Hol néztem be?
-
fordfairlane
veterán
válasz
TomyLeeBoy #14929 üzenetére
Hiányzik egy $mail->SMTPSecure = 'ssl';
-
válasz
TomyLeeBoy #14933 üzenetére
Ezt próbáld ki, elvileg kiírja a hibát:
$mail->SMTPDebug = 1;
-
válasz
TomyLeeBoy #14931 üzenetére
php_openssl kiterjesztés engedélyezve van?
Ha nem a php.ini-ben keresd meg a ;extension=php_openssl.dll sort és szedd ki a ;-t
-
válasz
TomyLeeBoy #14929 üzenetére
Így próbáld (innen):
<?php
require 'PHPMailerAutoload.php';$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'jswan'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->addAddress('josh@example.net', 'Josh Adams'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');$mail->WordWrap = 50; // Set word wrap to 50 characters
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}echo 'Message has been sent';
-
TomyLeeBoy
tag
Sziasztok!
PHPMailer-el küzdök, feltúrtam már a netet de nem találtam megoldást.
A kód:require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "nevem@gmail.com";
$mail->Password = "gmailjelszavam";
$mail->Port = 465;
$mail->From = "nevem@gmail.com";
$mail->FromName = "Nevem";
$mail->AddAddress("cimzett@cimzettdomain.hu","Címzett");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "Levél tárgya";
$mail->AltBody = "E-mail üzenet szöveg";
if (!$mail->Send())
{
echo "A levél nem került elküldésre";
echo "A felmerült hiba: " . $mail->ErrorInfo;
exit;
}
echo "A levelet sikeresen kiküldtük";Mindenféle próbálkozásra a következő üzenetet kapom: A levél nem került elküldésreA felmerült hiba: SMTP connect() failed.
Mit ronthatok el?
-
biker
nagyúr
válasz
fordfairlane #14927 üzenetére
átírtam ahogy a linken volt, és voila, működik
-
biker
nagyúr
válasz
fordfairlane #14924 üzenetére
köszi, az editor.class.php-ben volt egy htmlspecialchars, működik
-
biker
nagyúr
válasz
fordfairlane #14924 üzenetére
Nem, nem látszik a tartalom forrásban sem, innen tudom, hogy nem illeszti be
mivel nem ezt használom, elvileg nem gond, de.... lehet hogy a spaw modulban valahol használja???
hmm, nézhetem a forrást -
fordfairlane
veterán
Igaz, richtext editor, most kapcsolok. Mondjuk elgondolkoztam azon, hogy mi van akkor, ha a tartalmat textarea-ba teszed, és a tartalomban van egy lezáró </textarea> tag, de ez most annyira nem érdekes.
de nem is tervezném kiszűrni a html tageket, mert kellenek
Escapelésre gondoltam, nem szűrésre. htmlspecialchars. Egyébként pont ez a függvény kicsit megváltozott a PHP 5.4-ben, talán most is ez okozza a problémát.
Na, meg is van, erre gondolok:
Kérdés: Ha a böngészővel belenézel a html forrásba, amit a szervertől kapsz, látod a tartalmat a textareaban, aminek meg kellene jelennie?
-
biker
nagyúr
válasz
fordfairlane #14922 üzenetére
valóban vannak, mivel wyswyg textarea azért van, hogy legyen benne
stripslashes miért kell? passz, nem kell, eddig így ment 2006 óta, megörököltem, most szart be, hogy a dear szolgáltató frissített egyet
de nem is tervezném kiszűrni a html tageket, mert kellenekupdate: strip_tags után sem megy
-
biker
nagyúr
Üdv szakik.
egyik tárhelyszolgáltatónál valamit irtóra elbarmoltak, és hirtelen döntésből tegnapelőtt újrarántottak mindent, lett hirtelen php5.4 meg sok egyéb változás, én meg 2 napja inkompatibilis kódsorokat javítok hála nekik, de egy valami megfogta az agyamatVan egy SPAW2 fél wyswyg szerkesztő
ezt meghívva a tartalom nem illesztődik be<?php
$sw = new SPAW_Wysiwyg('spaw1' /*name*/,stripslashes($rec->tartalom) /*value*/,'hu' /*language*/,'uniotender','','100%','95%');
$sw->show();
echo $rec->tartalom;
?>A végén az echo-val kiíratom, tehát a lekért adat megvan
ha a stripslashes résznél beírom 'tartalom ez itt' akkor megjelenik a textaereaban, tehát a spaw is jó, csak nem fogad semmi változót
ha csinálok olyat, hogy $tartalom=$rec->tartalom; és a $tartalom marad, akkor sem illesztődik be, se stripslashes-el se nélküle, minden verziót próbáltam, síma text mehet, változó nemLenne ötletetek?
-
válasz
Sk8erPeter #14916 üzenetére
-
Sk8erPeter
nagyúr
Ez esetben én kérek elnézést, tényleg félreértettem a hozzászólásodat, eredetileg számomra eléggé oltósnak tűnt (mintha maga a gyorsmegoldás lenne a világ legrondábbja), de valószínűleg csak igen rossz pillanatban olvastam.
(#14918) fordfairlane :
Igaz, feleslegesen sértődtem be. -
fordfairlane
veterán
válasz
Sk8erPeter #14914 üzenetére
Szerintem senki nem kért számon rajtad semmit, nem ez a lényeg.
-
cucka
addikt
válasz
Sk8erPeter #14914 üzenetére
Félreérted. Ez igazából saját tapasztalat meg okosok is mondják, hogy nagyobb módosítások után érdemes refaktorálni. Vagy ha költőien akarod: ha nem teszel ellene, a kód mindig a rendezetlenség (spagettifikálódás) felé tart. Akkor is, ha nagyon ügyes meg hozzáértő vagy.
Meg aztán válaszoltál egy működő megoldással, ennél informatívabb nem lehetett volna, nem értem a felháborodást ezen, nem is gondoltam erre. -
Sk8erPeter
nagyúr
Szívesen!
Várj, egy kicsit elszégyellem magam, mert cucka kolléga azt mondta, dádá lesz, mert úgy írtam választ, hogy nem mérlegeltem egy cseppet sem, hogy az a hozzáállás, hogy ha nem minden szempontból kifogásolhatatlan a válaszoló megoldása, akkor bele se kezdjek. Ja, nem, mégsem.
Valahogy le tudom ejteni, ha neked megoldotta a problémádat.
Legközelebb meg majd legfeljebb rábízzuk a kollégára a megoldást. Majd ő megírja a tutit. De igazából nem akarom folytatni a kakaskodást, mert tök értelmetlen, de azért a kellemetlenkedését itthagyta nekünk rossz utóízként a kolléga.
Na, visszatérve: cseppet sem tökéletes a megoldás sem "szépség" szempontjából, ahogy a többiek "finoman" céloztak is rá, de a lényeg egyelőre, hogy menjen, majd írd meg, mire jutottál!
-
válasz
Sk8erPeter #14908 üzenetére
Köszönöm szépen, mindjárt elolvasom, értelmezem és megpróbálom fellőni élesbe.
-
Sk8erPeter
nagyúr
Köszönöm, remek, hogy mindezt elmondtad
Mondjuk eleve vicc, hogy most akkor kezdhetek el mentegetőzni, de felmerül a kérdés, hogy 1. miért nem csináltad meg szépen, ahogy illik (talán mert sok idő lett volna, és nincs kedved hozzá?) 2. ha mindenki így áll hozzá, és saját seggét vakarászva, utólag okoskodva kritizál, akkor a kérdezőnek hogy oldódik meg a problémája. Igaz, utólag aztán elszégyellheti magát, hogy hát bizony ő milyen tudatlan, és akkor jól megmondtad. Neki is, de azért nekem is, hát nehogy már.
Elmondtam az elején, hogy pár percnyi szabadidőmben adtam tüneti gyorskezelést. Egy büdös szóval nem utaltam rá, hogy ezt így kellene csinálni (a Notepad++-ba gyorspötyögős dolgokat nem tartom annak). Az ilyen echózott megoldás gusztustalan lehet, igazad van, simán hívhatod spagettikódnak. Igazából szebb lett volna valami template-szerű megoldás, a fordfairlane által említett alternatív szintaktika, és így tovább. (De könyörgöm, nézz már rá a korábbi kódra. Remélem, nem várod el, hogy megtanítsam a kérdezőnek a PHP-alapokat is.) Jó, mondjuk a válaszolónak is felelőssége van abban, hogy az ember hogyan kódol a továbbiakban, ezt aláírom. (Ismét felmerül a kérdés: amennyiben mindenki minden architekturális és egyéb mintát, kódolási stílust a kérdezőknek meg akar tanítani, ki a tököm fog válaszolni? Nem beszélve arról, hogy a PDO-sítást sem végeztem el ilyen alapon, mert nincs se kedvem, se időm rá. Én rohadék.)
Viszont tényleg kíváncsian várom a gyorsmegoldásodat, amit 5 percbe sokkal szebben lehetett volna sűríteni, csak úgy, hogy ne használd fel a kódomat még csak részben sem, mert úgy utólag könnyű.Szóval kérlek, állj elő a mutatvánnyal 5 perc alatt, ami mindenféle architekturális elképzelésednek megfelel.
(#14913) fordfairlane :
Hidd el, én is külön szoktam tenni, template-ezni (vagy ahhoz hasonló megoldást használni) már csak azért is kell, hogy az ember saját magát ne szopassa, meg azért, mert egyébként undormány kód születik. Ja, ez is ronda. (Ja, én is használom az alternatív szintaktikát.) -
fordfairlane
veterán
válasz
Sk8erPeter #14911 üzenetére
Nem is a "pattern" léte vagy nemléte az érdekes. Régen én is így csináltam mindent. Aztán mikor elkezdtem architektúrával foglalkozni, a nagyobb dolgokat már egész másképp valósítottam meg. És mostanság akár már 15-20 soros programnál is külön teszem a html-t tartalmazó részt a többitől, és a html-es résznél a PHP alternatív szintaxisát használom. ( foreach: endforeach; ), valamint kizárólag a változóbehelyettesítés, és iterációt tartalmazó kódrészt teszek a html-es részbe. Így szoktam meg.
-
cucka
addikt
válasz
Sk8erPeter #14911 üzenetére
a te kódodon gyönyörűen látszik, hogy hogyan kezd spagettifikálódni a rossz legacy kód, ha új fícsört kell hozzáadni.
-
Sk8erPeter
nagyúr
válasz
fordfairlane #14910 üzenetére
patternekről sztem nincs sok értelme itt beszélni
Az én kódom is echózott gyorsmegoldás.
-
Sk8erPeter
nagyúr
Hali!
1. a deprecated mysql_ kezdetű függvényekről át kell állni mysqli-re vagy PDO használatára
2. a végéről szedd ki a <center> taget, nemcsak felesleges (mivel nincs nyitótag), hanem obsoleted elem is (nem használjuk ma már, CSS-sel oldjuk meg a középre igazítást)
3. a táblázatos megoldást elkészítettem neked egy kicsit rugalmasabbra, nem tudtam most kipróbálni, csak fejből írtam a dolgot, Notepad++-ba gyorsan bepötyögve, de remélhetőleg nincs benne hiba, tehát:AZ EREDETI
echo "<table>";
echo "<tr><th>ID</th><th>User</th></tr>";
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo "<tr><td><img src=\"gif/".$row['ID'].".gif\"></td><td>".$row['User']."</td></tr>";
}
echo "</table>";HELYETT írd ezt a kódban:
// elemek száma egy sorban
$nrOfItemsInARow = 10;
// megszámoljuk az elemeket a ciklusban, 0-ról indítunk
$nrOfItems = 0;
// táblázat nyitótagje
echo '<table>';
// ciklus (TODO: PDO+MySQL-re vagy mysqli-re minél előbb átállni)
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
if ($nrOfItems % $nrOfItemsInARow === 0) { // osztási maradék (akkor kezdünk meg egy sort, ha osztható $nrOfItemsInARow-val)
// lezárjuk az előző sort, amennyiben nem az első elemnél járunk
if ($nrOfItems !== 0) { // az első elemnél nyilván nem kell lezárni még semmit
echo '</tr>';
}
// megkezdjük a sort
echo '<tr>';
}
echo '<td>
<a href="http://prohardver.hu/tag/'.$row['ID'].'.html">
<img src="gif/'.$row['ID'].'.gif" alt="'.$row['ID'].' ('.$row['User'].')" title="'.$row['ID'].' ('.$row['User'].')" />
</a>
</td>';
$nrOfItems++; // elemek számát növeljük
}
// maradékos osztás
$rowsRemainder = $nrOfItems % $nrOfItemsInARow; // pl. 33 elem van, 33%10 === 3
$colspanFromRemainder = $nrOfItemsInARow - $rowsRemainder; // pl. 10-3 === 7 --> ennyi üres hely marad még, ezt ki kell tölteni
// kitöltjük a maradék oszlopokat is colspan-attribútum segítségével
// (lásd pl. korábbi példa: 7 elemnyi hely marad)
if ($colspanFromRemainder > 0) {
echo '<td colspan="'. $colspanFromRemainder .'"></td>';
}
// lezárjuk az utolsó sort
echo '</tr>';
// lezárjuk a táblázatot
echo '</table>';
echo '<hr />';
echo '<p>Összesen: <strong>'.$nrOfItems.'</strong> db</p>';
echo '<hr />';Kommenteztem is rendesen, így remélhetőleg gyorsan megérted a kód működését.
Ez így rugalmas, mert elméletileg (ha nem írtam el a kódot) amennyiben a táblázatban egy sorban lévő elemek számát 10-ről szeretnéd megnövelni vagy lecsökkenteni, akkor csak a $nrOfItemsInARow = 10; sorban kell megváltoztatnod a számot. A többi pedig igazodik ehhez, minden egyebet kiszámol.Ja, még egy pluszt hozzátettem: belinkeli a felhasználók adatlapját is (lásd <a> tag), ezt is tördeltem, amennyiben nincs rá szükséged, vagy nem jó az eredmény, egyszerűen szedd ki a linkelést. Ezenkívül az <img> tag kapott alt- és title-attribútumot, ahogy illik.
Ha valami nem tiszta, kérdezz.
-
Üdv ismét!
Szeretném a segítségeteket kérni.
Van egy oldalam, ami jelenleg így listázza ki az eredményeket. Itt a kódja (1 napig látható).Azt szeretném, hogy csak a képeket listázza ki és ne egymás alá, hanem egymás mellé (nem muszáj táblázatba tennie, jó ha egy div-en belülre rakja, hogy később formázni tudjam) és egy számlálót is szeretnék még a kódba, ami megszámolja hány elem lett beillesztve. Körülbelül úgy, mint itt.
Szerk.: Közben látom, hogy az ID után teszi a .gif kiterjesztés, holott a User után kellene tennie, de ezt elfelejtettem átírni.Szerk2.: Megcseréltem. -
válasz
Speeedfire #14904 üzenetére
Csak arra gondoltam, hogy a Jenkins szerintem - elviekben jó lenne, ha egy maga ki tudná váltani azt amit csinálsz.
mobal,
-
Speeedfire
félisten
Mivel ezeket többen fejlesztjük, több projekben is felhasználjuk, a legtöbb nem projekt specifikus.
Továbbá Jenkins + gitlab nem oks egyszerre?
Mire gondolsz?Szerk.: Miért lenne sok a jenkins és a gitlab? Még így is faragtam rajta, mert a deploy-t is a jenkins végzi, nem pl a phing vagy a capistrano.
Érdekes dolgot találtam közben.
Alap felállás. [link]
Elvileg ha a csomagban beállítom a composer/installer-t, akkor a berántásnál felül tudom írni az útvonalat, ha jól értem. De közben nem teljesen így van, vagy nem jól állítok be valamit.A modul composer.json:
{
"name": "tothsz/errorhandler",
"authors": [
{
"name": "Toth Szabolcs",
"email": "email@cim.hu"
}
],
"require": {
"composer/installers": "~1.0"
}
}A csomag composer.json:
{
"name": "tothsz/yiiblog",
"description": "Yii blog",
"authors": [
{
"name": "Toth Szabolcs",
"email": "email@cim.hu",
"role": "Developer"
}
],
"repositories": [
{
"packagist": false
},
{
"type": "git",
"url": "https://privat.repo.url/tothsz/errorhandler.git"
}
],
"require": {
"tothsz/errorhandler": "dev-master"
},
"extra": {
"installer-paths": {
"src/protected/modules/{$name}/": ["tothsz/errorhandler"]
}
}
}De ezek után is a vendor alá rakja őket, pedig itt reponként külön lehetne megadni mappát.
Ami még nem tiszta, hogy itt azt írja, hogy a yii natív támogatva van, elvileg magától be is tudná illeszteni a megfelelő helyre a kiegészítőket.Valahol meg lehetne/kellene adni, hogy az adott repoban lévő forrás az pl téma, kiegészítő vagy modul.
Tele von Zsinór: Igen, az is megoldás lenne. Egy sima statikus függvény kellene csak, ami ezt visszaadja és be tudom illeszteni a megfelelő helyre. -
Tele von Zsinór
őstag
válasz
Speeedfire #14901 üzenetére
A kézzel felsorolás helyett nem jobb-e, ha kódból:
- listázod az összes mappát
- kiszűröd az említett kettőt
- átadod importálni a maradékotKöszi
azóta elég sokat változott, még alpha volt, mikor azt tartottam.
-
válasz
Speeedfire #14901 üzenetére
Miért kell minden egyes beépülő/kiegészítő miatt új repo? Teszteket lehet rá külön írni, és futtatni is egyaránt.
Továbbá Jenkins + gitlab nem sok egyszerre?
-
Speeedfire
félisten
válasz
fordfairlane #14899 üzenetére
Az alap ötlet/felállás az, hogy ugye van egy skeleton projekt. Ehhez írtunk kiegészítőket és modulokat, amiket külön repokban tárolunk, így csak a megfelelő helyre kellene őket bemásolni. De a composerrel jól lehetne ezt irányítani és nem tartozna bele a projekt git repojába, csak composerrel be lenne húzva.
Amikor a git-be push-olok, akkor a jenkinst meghívja a gitlab egy hook-kal, a jenkinsnek pedig meg lehet mondani, hogy a build előtt a composert is futtassa le. Így lerántja a megfelelő repokat a megfelelő helyre, majd ha végzett a tesztekkel akkor deployol.
Legalábbis ez lenne az alap ötlet. Egyedül a composer nincs még beállítva a mappákkal.Nem letöltött könyvtárak, repokban vannak.
Tele von Zsinór:
Hmm, végül is a config-ban bármilyen mappát meg lehet adni az import-nak. Annyi, hogy akkor egyesével kell felsorolni őket, mert a vendor mappában van egy bin és egy .composer mappa is.
Bár a saját telepítő is jól hangzik.Ja igen, a composeres diád jól összeszedett. Kíváncsi lettem volna az előadásra is.
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! Gigabyte H610M i5 13400F 16GB DDR4 512GB SSD RX 6700XT 12GB DeepCool MATREXX 40 650W
- Amazon Kindle 10th Generation ébresztős tok
- Csere-Beszámítás! MSI Gaming X RTX 4060Ti 16GB GDRR6 Videokártya!
- BESZÁMÍTÁS! Microsoft XBOX One S 2TB játékkonzol garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte H610M i5 12400F 32GB DDR4 512GB SSD Intel ARC A770 16GB Rampage SHIVA 650W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged