ugrás a tartalomhoz

Kezdetek..

kataiandi · 2014. Ápr. 1. (K), 14.05
Sziasztok!
Régebben tanulgattam magamtól - illetve főleg a Ti segítségetekkel HTML+CSS-t. Mától pedig besegítek egy kész honlap anyagainak feltöltésével(lemaradások bepótolásával) és szeretnénk egy teljesen új kinézetet, ám a PHP egy pöttyet magas még nekem.
Az első kérdésem: A lemaradásokat ugyan be tudom pótolni, hisz lesni tudok az alatta lévő sorokból. Létezik olyan oldal ahol betallózom a fájlt, és kidobja a hibákat?
Beleszeretnék merülni a tanulásba, és nem csak felületesen akkor milyen könyvvel vagy Netes anyaggal kezdjem, adnátok ötleteket?
Előre is köszönöm a segítségeteket!
 
2

Köszi, mentem :)

kataiandi · 2014. Ápr. 1. (K), 15.18
Köszi, mentem :)
3

Azt hittem legalább másolni

kataiandi · 2014. Ápr. 1. (K), 15.48
Azt hittem legalább másolni tudok, de kiderült nem :( Viszont nem jövök rá, hogy hol rontottam. Notepad++ használok, és látom hogy a sor eleje és a vége nem szürkül el,mint rendesen,így innen gyanítottam, már az elején, hogy valami galiba lesz, amikor rákérdeztem nincs e valami netes oldal, ahol kiszínezi vagy sikít, hogy hol a rossz.
Az egészet nem másolom le csak egy sort:
<a href=\"$_SERVER[PHP_SELF]?p=galeria&d=fotoalbum&w=h&sd=Misek&a=20130317_1100_Szentbeszed&c=Szentbeszéd, 2013.03.17." >itt meghallgatható</a><br>

Rájöttem :) Hiányzott egy \ karakter :)
Nem tudtam törölni ezt a kérdést, ezért írtam ide a megoldásomat :))
4

Pár tanács

Pepita · 2014. Ápr. 1. (K), 16.32
Szia, rég "találkoztunk"!

Szerintem ha kezdesz PHP-vel is foglalkozni, akkor nem ártana lassan elkezdeni használni egy komolyabb IDE-t, pl. Netbeans vagy Komodo Edit. Én utóbbit használom, nagy megelégedéssel.
A szintaktikai hibák könnyebben előjönnek, van (jobb) kódkiegészítés, stb.

Ebben a kérdésben a teljes <?php ... ?> közti részt be kellett volna illesztened, vagy a teljes PHP programsort, így nehéz lett volna kitalálni a hibát, és csak tippelni lehetett volna (szerencse, hogy rájöttél).

Jobb (és szebb) ha a {code} helyett {colorer}-t használsz, értelemszerűen nem kapcsos zárójelben.

Sok sikert!

(Jobb könyvet én sem tudnék ajánlani.)
6

Szia:)Egy kész oldalról

kataiandi · 2014. Ápr. 5. (Szo), 14.38
Szia:)
Egy kész oldalról lestem, pontosabban arról, amit szeretnének teljesen felújítani. Arra már rájöttem, hogy van benne hiba, vagyis számomra vannak gyanús elemek.. Bár lehet, hogy jók, hiszen én nem értek hozzá..
Tehát notepad++ helyett Komodo Edit.. Meglesem, és kipróbálom :)
code - rendben, legközelebb igyekszem figyelni erre is :)
5

Amivel el kell kezdened, az

inf3rno · 2014. Ápr. 5. (Szo), 14.35
Amivel el kell kezdened, az az angol és a php manual-ból a teljes language reference végigolvasása. Ha ebből valamit nem értesz, akkor nyiss neki itt fórum témát, és megbeszéljük.

Ha ezen túl vagy, akkor elkezdhetsz fejleszteni. Ehhez szükséged lesz egy fejlesztői környezetre. Ez azért kell, hogy kényelmesen tudjál kódot fejleszteni a megfelelő eszközökkel, és hogy otthon tudd tesztelni a kódodat. Így még mielőtt feltennéd az éles szerverre, szűrni tudod az esetleges hibákat...
A fejlesztői környezet alapvetően a következőkből áll:

- Internet kapcsolat, böngésző. Szükséged lesz a PHP manual-ra, és a google-re, hogy megoldást találj a problémáidra. Ahelyett, hogy feltalálnád a kereket érdemes utánakeresni, hogy mások mit javasolnak az aktuális problémád megoldására. Ehhez meg kell tanulnod a megfelelő kulcsszavakat beírni a google-be. Ha valami nem megy, akkor persze itt is kérdezhetsz.

- Egy HTTP szerver, egy PHP és egy adatbázis (ha akarsz adatbázist a projektedhez), amik ugyanolyanok verzióban és típusban, vagy legalább hasonlóak, mint ami éles környezetben is lesz. Általában Apache, PHP, MySQL kombinációt szoktak használni, de ettől el is lehet térni, én pl IIS, PHP, PgSQL-t használok jelenleg.

- Egy IDE, pl: phpstorm, netbeans, aptana, komodo, zend studio, vagy valamilyen kiterjesztett szövegszerkesztő. Kiemelten fontos, hogy követni tudd, hogy milyen fájlok vannak a projektedben, illetve, hogy legyen benne kódszínezés (php, html, javascript, css, sql nyelvekre), kód kiegészítés, syntax check (ami vörösen aláhúzza neked a syntax error-t). Kevésbé fontos, de azért jó, ha van benne konzol, git, phpunit, composer, stb... support.

- Valami, amivel fel tudod tölteni éles szerverre a kódodat. Erre nagyon sok megoldás van. A legtöbb olcsó magyar tárhely általában csak FTP-t biztosít, ami egyáltalán nem biztonságos, de legalább van.

Ha ezek fent vannak, akkor próbálgathatod, hogy tudsz e működő kódot csinálni. Ha igen, akkor továbbléphetsz a következőkre:

- Olvass könyveket, cikkeket arról, hogy elméletben, gyakorlatban milyen programtervezési mintákat érdemes használni, és miket kerülni bizonyos szituációkban. Rengeteg ilyen könyv van. Amit most így hirtelen javasolni tudok PHP-hoz, mert most kezdtem el olvasni én is, és ígéretesnek tűnik, az a practical php patterns. Ezt tényleg csak akkor ajánlom, ha már az alapokkal, tisztában vagy.

- Git használata. Ehhez végig kell nyálaznod a teljes git manualt. Ez kb egy napi munka, ha gyenge az angolod, akkor több nap is lehet, de megéri. A git jelenleg a legjobb ingyenes verzió kezelő. Azért érdemes verzió kezelőt használnod, mert úgy bármikor visszaállíthatod a kódodat egy előzőleg mentett (committált) stabil állapotba olyan esetben, ha elrontottál valamit. Ez alapvető dolog az összes verziókezelőnél. A git annyival nyújt többet, hogy vannak benne ágak. Csinálhatsz külön release ágat (általában ez szokott lenni a master néven), ami a kitesztelt kódot tartalmazza, és amiről feltölthetsz éles szerverre. Csinálhatsz emellett developer ágakat is, amiken fejlesztheted az alkalmazásodat, és tesztelheted azt egészen addig, amíg érdemesnek nem találod, hogy mergeld (beolvaszd) a release ágra. Ha FTP-re töltesz fel, akkor a git ftp-vel és egy post-commit hook-al el lehet érni, hogy a release ág bármilyen módosítása automatikusan fel legyen töltve az éles szerverre. Így nem kell azzal foglalkoznod, hogy egyesével feltöltsed a módosított fájlokat. Lehet még olyan extrákat is betenni, hogy a fájl feltöltés idejére automatikusan beállítja a hook a szervert, hogy tegyen ki egy karbantartás feliratot. Ez sem bonyolult... Ezek olyan extrák, amikkel napi szinten órákat spórolhatsz meg.

- Composer használata. A composer egy component manager system. Ez kb azt jelenti, hogyha mások által megírt, és ingyenesen megosztott kódot akarsz használni, akkor elég a composernek megadnod a nevét és a verzióját a kódnak, amit használni akarsz a projektedhez, és ő automatikusan letölti azt az összes függőségével és szépen beteszi a vendor mappádba. Így nem kell azzal foglalkoznod, hogy felmész a keretrendszer honlapjára, letöltöd a fájlokat zip-ben, kicsomagolod, törlöd az előző verziót, bemásolod az újat, stb... Ezzel is sok időt meg lehet spórolni a projekt kezdetén, illetve a használt könyvtárak frissítésekor. Az fel se merüljön benned, hogy nem akarsz külső könyvtárat használni. Ezek használatával rengeteg időt megspórolhatsz, mert nem kell újra feltalálnod a kereket, és mindent nulláról megírnod. A külső könyvtárakkal kapcsolatban inkább az szokott lenni a probléma, hogy melyiket használd. Általában a következőkre szokott szükség lenni: HTTP kiszolgálást (routingot, validálást, sablonozást, stb...) segítő könyvtár, adattárolást (sql írás, transaction, lock, stb...) segítő könyvtár, tesztelést (automatizált tesztek írása, futtatása) segítő könyvtár. Én első körben neked a HTTP kiszolgálásra a SLIM-et tudom ajánlani, mert baromi egyszerű az olyan könyvtárakhoz képest, mint a symfony, vagy a zend (nyilván nem is nyújt annyit, de kezdetben ez utóbbiakat nem biztos, hogy egyáltalán értenéd). Esetleg még érdemes hozzá valamilyen sablon rendszert, mint pl a mustache vagy a smarty használni, de nem kötelező. Az adattároláshoz a doctrine-t tudom javasolni, mert egy egyszerűbb projektnél azzal szinte egyáltalán nem kell foglalkoznod az SQL kérdésével. A teszteléshez meg a PHPUnit-ot tudom javasolni, mert nincs más. Merülj el ezeknek a dokumentációjában, leginkább az első kettőjében, a harmadikkal külön foglalkozom.

- PHPUnit használata. Ha csak az alapvető teszt környezetet használod, akkor a fejlesztés menete a következő szokott lenni:
- kigondolod, hogy mit szeretnél,
- megírod hozzá a kódot,
- megnézed a böngészőben, hogy megy e hozzá tartozó aloldal, végigkattintgatod, megnézed, hogy nincs e hiba, és minden rendben zajlott e,
- ha van hiba, akkor debuggolsz (megkeresed és javítod).
Ez időrabló, napi több órát elvehet, és semmi garanciád nincs arra, hogy a kódodban nem marad hiba, illetve ha hibát találsz, akkor a debug (hiba felderítése) is akár órákba telhet. Mi nem így szoktunk tesztelni.
Jobb helyeken TDD-t használnak, ami egy másfajta fejlesztési hozzáállás. TDD-vel a következő a fejlesztés menete:
- kigondolod, hogy mit szeretnél,
- megírsz hozzá egy kis darabka automatizált tesztet,
- ellenőrzöd, hogy a teszted elbukik, mert még nincs kód írva hozzá,
- megírod a kis darabka kódot hozzá,
- ellenőrzöd, hogy a teszted átmegy a kis darabka kódoddal,
- folytatod a kis darabka teszt és kis darabka kód írását egészen addig, amíg nincs megvalósítva teljes egészében az, amit kigondoltál.
Ahhoz, hogy TDD-t tudjál használni, automatizált teszteket kell írnod. Automatizált tesztekkel még csak meg sem kell nyitnod soha a böngészőt az aloldal megnézésére, helyette egy test runner-t futtatsz, ami kidobja, hogy zöld vagy piros, szóval hogy átment e a kódod az összes teszten, vagy hibát talált. Az automatizált tesztek még azért is jók, mert bármikor egy gombnyomással le tudod futtatni őket, és ellenőrizni, hogy minden rendben, a módosításod a kódon nincs negatív hatással az előző tesztekre. Automatizált tesztekkel TDD-vel fejlesztve garanált, hogy a kódod tesztelve van, mert a tesztek alapján írsz minden egyes sor kódot, és nem a kód alapján próbálsz ki néhány tesztet. Összességében szintén napi szinten órákat és nem kevés frusztrációt lehet megspórolni TDD-vel és automatizált tesztekkel. Ami negatívum ezzel kapcsolatban, hogy csökkenti a programozói szabadságodat. Nem írhatsz spagetti kódod, muszáj széttagolnod a kódod egyes részeit azért, hogy hatékonyan tesztelni tud azokat. Ehhez tapasztalat és gyakorlás kell, de hosszú távon nagyon megéri, mert sokkal hatékonyabban tudsz így programozni.

Összességében nagyon sok dolgot meg kell tanulnod, de ha az itt felsoroltakat elsajátítod, akkor jó PHP programozó válhat belőled. Sok sikert!
7

+1 és -1

Pepita · 2014. Ápr. 8. (K), 15.42
Nagyon részletes és pontos leírást adtál neki, de szerintem - mert azt írta, nem ért hozzá - a teljes php manual végigolvasása és a
- Git használata.
és további leírásod kissé elkedvetlenítheti.
Nagy Gusztáv könyve alapján el tud indulni (beleértve egy WAMP környezet létrehozását is), aztán menet közben (mert kell a "kódolási élmény") elolvassa azt, amit kell. Mi majd szépen linkelünk egy csomót a manualból (is), ahogy szoktuk, én pl. a mai napig van, hogy nem találok megoldást valamire, pedig már létezik, de én nem találtam.
Szerintem nem gond, ha jön és sokat kérdez itt is, legfeljebb csak pár linket kap válaszul, nem kerül semmibe... Viszont tudom, hogy tanulékony - ezzel együtt a más, ki tudja milyen kódjának javításával kezdenie kissé meredek ötlet. Saját kódocskákkal jó kezdeni, először még adatbázis nélkül, megtanulva a fájlkezelést, sessiont, űrlapfeldolgozást, biztonsági dolgokat, ...

SZERK.:
Félreértés ne essék: helyes utat írtál, de az akár több év "hosszúságú" is lehet. Addig pár oldalt össze fog eszkábálni, úgy, ahogy sikerül.
8

Előszöris, örülök, hogy

inf3rno · 2014. Ápr. 8. (K), 16.16
Előszöris, örülök, hogy visszatértél! :-)

Én úgy vettem észre, hogy a php manual-ban minden alapvető ismeret le van írva napra készen pl a függvényekről, osztályokról, és így tovább... Ezért ajánlottam azt, és nem egy külsős könyvet. Nem ismerem Nagy Gusztáv könyvét, így nem tudok véleményt mondani róla.

Nem értek egyet azzal, hogy egy kezdőt meg kéne védeni attól, hogy lássa a távlatokat. Így is csak néhány alapvető technológiát soroltam fel, amiket szerintem minden PHP fejlesztőnek ismernie kéne. Én pl személy szerint az utóbbi 2 évben legalább 200 technológiát, keretrendszert átnéztem, hogy mire jók, és mire nem, csináltam magamnak egy adatbázist róluk, és ha meg kell tervezni egy projekthez, hogy mit fogok használni, akkor tudok mihez nyúlni. Ez a fajta tudás, illetve állandó tanulás a legfontosabb, ha az ember napra kész akar maradni, és ismerni akarja a lehetőségeit...

Viszont tudom, hogy tanulékony - ezzel együtt a más, ki tudja milyen kódjának javításával kezdenie kissé meredek ötlet.

Ezzel teljesen egyet értek, a régi rossz berögzüléseket nagyon nehéz kijavítani, és ha alapból megszokja a rossz minőségű kódot, akkor később nehéz lesz neki váltani, vagy egyáltalán megérteni, hogy az úgy miért nem jó. Nekem személy szerint a kezdeti gányolt kód kinövése volt a leghosszabb folyamat (ami persze még mindig tart). Valószínűleg írni fogok a későbbiekben egy könyvet kezdőknek, amivel jelentősen lerövidíthető ez az út. A legnagyobb probléma szerintem ezzel kapcsolatban, hogy nincsenek tisztában azzal, hogy egyáltalán léteznek olyanok, hogy programozási irányelvek. Saját tapasztalatból meg ezeket évtizedekbe telik újra feltalálni...
9

elejétől...

kataiandi · 2014. Ápr. 8. (K), 18.18
Sziasztok!
Köszi Pepita a "viszont tudom, hogy tanulékony.." kijelentésedet.:) Igyekszem nem csalódást okozni :) Emlékszel a régi oldalamra? (betegségemről és az elfoglaltságaimról írtam) Adományként kaptam azt a tárhelyet, domin nevet, mindent.. de úgy tűnt, aki adta, úgy döntött meggondolja magát. Két év után se szó se beszéd megszűntem létezni (a szolgáltató létezik még, csak az én oldalam nem..)
Azt (is) teljesen a kezdeti lépésekkel kezdve készítettem (html+css), és most is úgy szándékozom. Időm mint a tenger alapon, gondoltam miért ne segítsek abban, amiben tudok, és így jutottam el a kész weboldal frissítéséhez. Amíg nem tanulom meg, addig is valahogyan a friss híreket fel kell tölteni, mert sokan hiányolják/"szóvá teszik" így is a pár hetes csúszásokat..
11

Na ne már!... :)

Pepita · 2014. Ápr. 9. (Sze), 10.44
Köszi Pepita a "viszont tudom, hogy tanulékony.." kijelentésedet.:)
Egyáltalán nincs mit, tudod, hogy őszinte vagyok, akkor is, ha negatívumot kell írjak. Tehát ne köszönd, csak egy tényt írtam le. (Nem hinném, hogy csalódást okoznál.)
Emlékszel a régi oldalamra?
Természetesen. Most ez sehol sincs? Akkor írok egy privit is.
addig is valahogyan a friss híreket fel kell tölteni, mert sokan hiányolják/"szóvá teszik" így is a pár hetes csúszásokat..

1. Nem lehet azt az oldalt is csak HTML / CSS megcsinálni? Akár újra, a jelenlegi HTML kimenetek felhasználásával.

2. Ha ingyen csinálod, ne "tegyék szóvá".

3. Tényleg nem javítgatással kéne kezdeni, én ma is, ha ilyet kapok (más kódját), igyekszem inkább rábeszélni a megrendelőt az újra, mert sok esetben az még olcsóbb is (mert kevesebb munka).
12

új dolgot megismerni jóóóó :)

kataiandi · 2014. Ápr. 11. (P), 10.31
Sajnos sehol sincs. Bár a megszűnés előtt pár hónapja még mentettem, tehát az meg van...
Azt, hogy ezt is "csak" html+css-be megírni, nem rossz ötlet. Azt gondolom, nem is reklamálnának.:)Azonban én sem vagyok a php ellen, mert így legalább újabb célom van, és újabb lendületet ad a köv. napnak. Tanulni, új dolgot megismerni, kipróbálni szuper dolog, és ezt a ti segítségetekkel itthon is tanulható, és nem kell elvetnem, mert nem tudok ide vagy oda elmenni tanfolyamra, suliba stb., így már csak rajtam és az állapotomon múlik :)

Jelenleg ismételem a CSS-t :)
13

Hajrá :)

Pepita · 2014. Ápr. 11. (P), 14.27
Csak addig legyen statikus honlap, míg beletanulsz a szerveroldali fejlesztésbe, majd akkor megcsinálod dinamikusra.
JS-el hogy állsz? Csak mert szerintem jobb előbb kliensoldalon aránylag mindennel tisztában lenni, és úgy "menni a szerverre", hogy már tudod, milyen kimeneteket akarsz generálni.
Tanulni, új dolgot megismerni, kipróbálni szuper dolog
+1 :)
Szerintem minden nem-Pistike fejlesztő így gondolja, ha szereti a munkáját.
14

:)

kataiandi · 2014. Ápr. 12. (Szo), 21.46
JS...húúú azzal sehogy sem állok :( .... és nem találom sehol sem a régi honlapom mentéseit :(
Ezek szerint ismétlés jó alaposan HTML, CSS....majd JS és csak utána PHP. Értettem! :D Akkor hajrá magamnak :D!
15

git-et is megtanulhatod, az

inf3rno · 2014. Ápr. 13. (V), 00.31
git-et is megtanulhatod, az php és js nélkül is nagyon hasznos. gyakorlatilag bármilyen számítógépes munkánál ajánlott használni, aminél hibázni tudsz, esetleg több változatot ki akarsz próbálni...
érdemes elolvasni a manualt, de ha a konzol nem megy, akkor van hozzá több grafikus felületű program is.
10

Igyekszem

Pepita · 2014. Ápr. 9. (Sze), 10.34
Előszöris, örülök, hogy visszatértél! :-)
Köszönöm szépen, igyekszem visszanyerni a formám.

Igen, a manualban szinte minden benne van, de egy szuszra, kódolgatás nélkül végigolvasni... nem egy nagy élmény.
Nem értek egyet azzal, hogy egy kezdőt meg kéne védeni attól, hogy lássa a távlatokat.
Én se "megvédeni" akartam, csak kicsit ilyesztőnek tűnhet ennyi tanulnivalót látni egyszerre. De te is írtad, hogy "próbálgathatod, hogy tudsz e működő kódot csinálni", úgyhogy igazad van, én mindössze a további részeket később írtam volna - de ez szerintem apró nézőpontbeli különbség.
nincsenek tisztában azzal, hogy egyáltalán léteznek olyanok, hogy programozási irányelvek
Ezzel maximálisan egyetértek.