Posts tagged PHP

Ajax, PHP un WordPress bezmaksas video pamācības

2

Nu jau kādas pāris nedēļas pievēršu uzmanību (ar RSS) Web lapai killersites.com. Apmeklējot attiecīgo adresi var atrast noderīgas video pamācības. Daļa ir maksas, daļa bezmaksas. Piemēram, bez maksas tiek piedāvata WordPress konfigurēšanas pamācība, kas veidota astoņās daļās. Ir arī bezmaksas Ajax pamācība, kas sastāv no 15 daļām. Ajax saistītajos video ir redzams kā strāda Ajax bāzēts iepirkšanās grozs (gan vizuāli, gan izskaidrots kods). Savukārt PHP pamācība ir vairāk kā 20 daļās.

Uzreiz varu teikt, ka tie, kas ar attiecīgajām tehnoloģijām ir pazīstami šie video var nebūt īpaši noderīgi. Pamācības vairāk domātas tiem, kam nav bijusi īpaša saskarsme ar apskatītajām lietām.

Par video kvalitāti īsti spriest nevaru, jo esmu paskatījies tikai kādus 3 video. Uzreiz jāsaka, ka autors (Stefan Mischook) runā ļoti brīvi, reizēm šķiet, ka pat nedaudz pārāk aizrunājas. Bet, protams, iesācējiem ļoti ieteicams šos materiālus noskatīties. Tie nebūs ļoti īsi. Piemēram, par Ajax tiek runāts ilgāk kā 3h.

Par maksu ir piejamas video pamācības par Web dizainu, Dreamweaver, Flash un iespējams arī par citam tēmām.

Pats labprāt noskatītos kādus ar Zend Framework saistītus video (kaut ko vairāk par pašu ievadu attiecīgajam ietvaram). Ja kādam ir zināmas adreses, kur pamācības var noskatīties, būtu pateicīgs, ja padalītos ar tām.

Desmit mīti par PHP

3

Jaybill McCarthy savā blogā uzskaitījis desmit mītus par PHP un katru no tiem atspēkojis. Ja ne atspēkojis, tad vismaz devis labu vielu pārdomām par to vai tiešām attiecīgā lieta ir patiess pieņēmums par PHP.

Runa iet par sekojošiem mītiem (atvainojos, ja tulkojums nebūs 100% precīzs):
1) PHP nav patiesi (pilnībā) objektorientēta valoda
2) PHP iedrošina (veicina) nekvalitatīvu kodu (par šo es jau vienreiz biju izteicies un šķiet, ka nedaudz pa daudz biju sacepies)
3) PHP neseko MVC
4) PHP ir lēns, jo tiek interpretēts
5) PHP nav labu debuggeru un IDEs
6) Visas PHP aplikācijas izskatās vienādi
7) PHP nav domāts “nopietniem” izstrādātājiem
8) PHP der tikai Web aplikācijām
9) PHP kods ir juceklīgs dēļ “include” un “require”
10) PHP kods ir pārpilns ar iekšrindas SQL teikumiem (iekšrindas domāts “in-line”)

Ieteicams izlasīt gan tiem, kas ar PHP strādā, gan tiem, kas strāda ar citām valodām.

Zend ietvars

4

Domājot par to, kā paātrināt programmēšanu PHP, kā arī kodu padarīt pēc iespējas lasāmāku un vieglāk modificējamu biju sācis veidot pats savas klases dažādu uzdevumu veikšanai. Piemēram, mijiedarbībai ar datu bāzi viena klase, lietotāju autorizēšana un ar to saistītajām lietām cita klase utt. Tādā veidā varēju ieekonomēt laiku, ja vairākos Web projektos nepieciešama kāda daļa pamatfunkcionalitātes, kas atkārtojas. Turklāt, ja jāveic kādi labojumi vecajā kodā, man atliek tikai pamainīt attiecīgo klasi un nomainīt klases failu projektos, kuros tas ir iesaistīts. Bet tad es aizdomājos, ka klases kuras es varu uzrakstīt bieži vien ir stipri ierobežotas kādos apstākļos. Tāpēc vai nu tās būtu jāpapildina, kas prasa daudz laika un daudz testēšanas vai arī vajadzētu paskatīties uz kādu ietvaru pusi. Iepriekš biju pretinieks ietvariem, jo lai tos izmantotu, tie no sākuma ir jāapgūst, bet tas prasa laiku. Turklāt kāda cita taisītu ietvaru nevar tik labi pārzināt kā paša rakstītu ietvaru vai klašu kopumu. Bet tad aizdomājos, ka neesmu jau es eksperts programmēšanā un gan jau, ka tie ietvari kas ir uztaisīti ir tādas kvalitātes, kādu man nekad nesasniegt. Tāpēc esmu nolēmis, ka apgūšu vismaz vienu ietvaru. Un izvēle ir kritusi uz Zend ietvaru.

Paskatoties šo pamācību, secināju, ka pamācīties nāksies diezgan daudz. Bet viens ir skaidrs – ja kāda lapa tiks uztaisīta ar Zend ietvara palīdzību, tad kādam citam to kodu modificēt būs krietni ātrāk un vieglāk nekā ielauzties manā kodēšanas stilā (pieņemot, ka viņš būs zinošs par to kā Zend strādā). Turklāt, ja attiecīgā lieta būs apgūta labi, tad jaunu Web projektu taisīšana varētu notikt krietni ātrāk nekā tas man sanāk tagad. Tie ir pirmie iespaidi. Nezinu kā īsti būs. Bet skaidrs ir viens – nākamo projektu taisīšu ar Zend – vienīgi būs jāmeklē jaunu hostingu, jo tagadējais PHP5 nepiedāvā (pagaidām).

Varbūt kādam ir pieredze ar Zend ietvaru un var padalīties ar lielākajiem ieguvumiem, problēmām?

Par PHP strtotime() funkciju

3

Kādu laiku iepriekš jau rakstīju par problēmām, kuras man bija radušās izmantojot PHP funkcijas date() un strtotime(). Nesen saskāros ar vēl vienu problēmu strtotime() izmantošanā. Pēc savas būtības šī funkcija ir neaizvietojama daudzās situācijās. Varbūt ir aizvietojama, bet tādā gadījumā es labprāt uzzinātu par alternatīvām ar līdzīgu funkcionalitāti. Ko tad šī funkcija dara? Viņa paņem datumu, kas pierakstīts teksta formātā un pārvērš to sekundēs. Savukārt sekundes mēs varam ar date() funkciju pārvērst par mums nepieciešamā formātā esošu datumu.

Parasti, ja funkcijai strtotime() padod datumu kādā formātā, kuru tā nespēj apstrādāt, atbildē būs sekundes, kuras neatbilst konkrētajam datuma. Nu lūk – problēma radās apstāklī, ka visi datumi, kurus Web lapā jāredz lietotājam un kurus viņš ievada nepieciešamajos laukos, ir reprezentēti formātā dd.mm.yyyy. Daudz nedomājot es šādu datumu ar strtotime() pārvērtu uz sekundēm un tālāk ar date() uz yyyy-mm-dd. Viss strādāja ideāli. Taču uzliekot skriptus uz cita servera, korektā strādāšana bija kaut kur pazudusi. Sāku meklēt kur ir kļūda. It kā strtotime() atbalsta gan PHP4, gan PHP5. Piebildīšu, ka uz gala servera stāv PHP4. Iemetot aci php.net uzreiz nekādas īpašās atšķirības nepamanīju. Iespējams ne tā skatījos. Tad uzrakstīju mazu skriptu, kurš ņēma dažādi formatētus datumus un pārtaisīja tos par sekundēm un tad atpakaļ par datumu. Skriptu palaidu gan uz PHP5, gan PHP4. Rezultāti sekojoši:

Ievads | PHP5 | PHP4
2007-09-26 | 2007-09-26 | 2007-09-26
26-09-2007 | 2007-09-26 | 2032-02-28
09-26-2007 | 1970-01-01 | 2016-07-30

2007.09.26 | 1970-01-01 | 1970-01-01
26.09.2007 | 2007-09-26 | 1970-01-01
09.26.2007 | 1970-01-01 | 1970-01-01

Kā redzams – PHP5 dd.mm.yyyy formātu labprāt konvertē tā kā vajag, bet PHP4 nē. Tāpēc mācieties no citu kļūdām un atcerieties, ka maģiskā funkcija strtotime() strādā dažādi uz dažādām PHP versijām.

Go to Top