Zend Framework from Scratch

Klaar om je PHP-vaardigheden naar een hoger niveau te tillen? In deze nieuwe "From Scratch" -serie zullen we ons uitsluitend richten op Zend Framework, een PHP-framework met volledige stack gecreëerd door Zend Technologies. De eerste in onze lessenreeks is "Aan de slag met Zend Framework".


Introductie: Wat is Zend Framework?

Zend Framework is een full-stack PHP framework gecreëerd door Zend Technologies. Voor degenen die niet bekend zijn met het bedrijf, biedt Zend Technologies webontwikkelaars verschillende hulpmiddelen om hen te helpen bij hun werk. Bekende voorbeelden zijn Zend Server, een webtoepassingsserver voor het uitvoeren en beheren van PHP-applicaties, en Zend Studio, een uitgebreide IDE voor PHP. Uiteraard is Zend erg geïnvesteerd in PHP, vandaar dat Zend Framework een geweldig hulpmiddel is om toe te voegen aan het arsenaal van een ontwikkelaar..


Zend: The PHP Company

Zend Framework bestaat uit veel verschillende bibliotheken en klassen. Dit is een tweesnijdend zwaard - het maakt het voor ontwikkelaars gemakkelijker om bibliotheken te selecteren als ze er maar een paar nodig hebben. Het nadeel is dat het opzetten van het framework in het begin niet zo eenvoudig is, omdat het maar een aantal klassen zijn. Dat gezegd hebbende, Zend heeft een steigertool en een aanbevolen manier om uw applicatiestructuur in te stellen, die we in deze specifieke tutorial gaan bespreken..

In deze serie tutorials duiken we in hoe Zend Framework werkt en hoe het zijn verschillende componenten leert gebruiken. Aan het einde van de serie hebben we een geheel nieuwe sociale netwerksite gebouwd - compleet met basisprofiel, netwerkmogelijkheden, statusupdates en zelfs API-functionaliteit. En nu, zonder verder oponthoud, laten we beginnen!


Stap 1: download Zend Framework

Eerst en vooral moeten we Zend Framework downloaden. Momenteel is de nieuwste versie 1.11.11. Ga om te beginnen naar de Zend Framework-website http://framework.zend.com en klik op de Download nu knop.


Zend Framework Download nu link

Dit zou je naar een scherm moeten brengen met een lijst met verschillende downloads voor Zend Framework. Als u in de toekomst de Zend Framework-bibliotheek bijwerkt, downloadt u de Minimaal versie, die alleen de ZF-bestanden bevat. Laten we voorlopig downloaden Zend Framework 1.11.11 Vol, welke de bibliotheek bevat met alle demo's en tests. Het bevat ook de steigertool die we later in de zelfstudie zullen gebruiken.


Zend Framework downloadlijst

Stap 2: Stel uw Zend Framework-omgeving in

Nadat de download is voltooid, pakt u de bestanden uit op uw bureaublad om een ​​duidelijk beeld van de inhoud te krijgen. Binnenin zijn er veel mappen, maar voor de doeleinden van deze tutorial hebben we er slechts twee nodig: de bak map en de bibliotheek map.

Voor de organisatie, zet de bak map in uw PHP-map en hernoem het naar zend-bin. De mijne is D: \ ontwikkeling \ PHP, dus het eindresultaat zou moeten zijn D: \ ontwikkeling \ PHP \ zend-bin.

Ga naar de bibliotheek map en je zou een Zend map. Plaats dit in jouw PHP's include_path. Dat is voor mij D: \ ontwikkeling \ PHP \ omvat, dus verplaats het daar naar binnen D: \ ontwikkeling \ PHP \ includes \ Zend. Vergeet niet om het te kopiëren Zend map in de bibliotheek map, niet de bibliotheek map zelf.

Ten slotte moeten we de Zend CLI-tool binnen de zend-bin map om in elke map te werken. Om dit te doen, moeten we de map toevoegen aan de Pad Systeemvariabele, zodat we het kunnen bellen via de opdrachtprompt.

Klik met de rechtermuisknop op de Computer link onder Start om de te openen Systeem informatie venster. Klik hier op Geavanceerde systeeminstellingen.

Klik in het geopende venster op Omgevingsvariabelen knop. Zoek in het nieuwe venster naar de Pad variabele in de Systeemvariabelen lijst. Klik op Bewerk en voeg uw toe zend-bin maplocatie aan het einde.

Als je klaar bent, klik je gewoon OK om het op te slaan.

Om ervoor te zorgen dat onze configuratie werkt, opent u een opdrachtprompt en voert u de zf --help commando. Dit zou de commando's moeten uitvoeren die we kunnen gebruiken met de Zend CLI tool. Als dit niet het geval is, probeert u uw computer opnieuw op te starten om te controleren of de systeemvariabelen zijn geïmplementeerd.

Bovendien is er een zf.sh bestand in de zend-bin map. Dit is voor Unix-gebaseerde besturingssystemen zoals OSX of Linux. Stel de omgevingsvariabelen dienovereenkomstig in om hetzelfde resultaat te krijgen.


Stap 3: Maak uw First Zend Framework Project

Nu beginnen we met de daadwerkelijke ontwikkeling van ons Zend Framework-project. Ga in de opdrachtprompt naar de map waar u uw projectbestanden wilt plaatsen (idealiter zou dit de map moeten zijn waarnaar uw lokale webserver verwijst). Voor mij is het dat wel D: \ ontwikkeling \ htdocs \ nettuts, dus ik zal de cd D: \ Ontwikkeling \ htdocs \ nettuts commando op mijn prompt.

Typ de volgende opdracht om ons Zend Framework-basisproject te maken: zf maak een project thenextsocial. In het commando, thenextsocial is de naam van ons project. Wanneer u begint met het maken van uw eigen ZF-projecten, vervangt u deze door de juiste projectnaam.

Bekijk nu de inhoud van de map - je zou een nieuwe moeten zien thenextsocial map. In de map ziet u meerdere projectbestanden. Het belangrijkst is dat u een a ziet openbaar map, die via browser de enige openbaar toegankelijke map zou moeten zijn. Om dit toegankelijk te maken, moeten we nu een VirtualHost voor het project.

Open je Apache's om een ​​VirtualHost in te stellen httpd.conf het dossier. Voeg binnen de volgende code toe:

  Servernaam thenextsocial.local DocumentRoot "D: / Development / htdocs / nettuts / thenextsocial / public /"   

U moet ook het domein toevoegen aan uw lokale domein hosts het dossier. Voor Windows-gebruikers zou dit moeten zijn C: \ Windows \ System32 \ Drivers \ etc. Voor Unix-gebaseerde OS-gebruikers zou dit moeten zijn / Etc / hosts. Open het en voeg toe thenextsocial.local en wijs ernaar 127.0.0.1

Start uw webserver opnieuw op. Wanneer je opent http: //thenextsocial.local in uw browser moet dit al verwijzen naar uw Zend Framework-project.

Gefeliciteerd U hebt uw eerste Zend Framework-project met succes gemaakt!


Stap 4: Meer informatie over de MVC-structuur van Zend Framework

Wat is dit MVC-patroon precies??

Van de quickstart introductie van Zend Framework:


Het model-view-controller (MVC) patroon
Afbeelding met dank aan http://framework.zend.com

Het MVC-patroon modelleert deze scheiding van zorgen goed.

Dus wat is precies dit MVC-patroon waar iedereen het steeds over heeft, en waarom zou je erom geven? MVC is veel meer dan alleen een drieletterig acroniem (TLA) dat je kunt uithalen wanneer je maar slim wilt klinken; het is een standaard geworden in het ontwerp van moderne webapplicaties. En met een goede reden. De meeste webtoepassingscode valt onder een van de volgende drie categorieën: presentatie, bedrijfslogica en gegevenstoegang. Het MVC-patroon modelleert deze scheiding van zorgen goed. Het eindresultaat is dat uw presentatiecode in een deel van uw toepassing kan worden geconsolideerd met uw bedrijfslogica in een andere en uw gegevenstoegangscode in nog een andere. Veel ontwikkelaars hebben ontdekt dat deze goed gedefinieerde scheiding onmisbaar is om hun code geordend te houden, vooral wanneer meer dan één ontwikkelaar aan dezelfde applicatie werkt..

De kern hiervan is: modellen bevatten onze bedrijfslogica, weergaven bevatten onze HTML en controllers houden alles op één lijn en vertellen zowel de views als modellen wat ze moeten doen.

MVC in een Zend Framework-gevoede applicatie

Het goede aan het gebruik van de ZF CLI-tool is dat het je applicatie automatisch instelt om gebruik te maken van de MVC-klassen van Zend Framework, waardoor je sneller aan je projecten kunt werken.

Ga terug naar ons project, open de thenextsocial / applicatie map en je zou moeten zien - je raadt het al - modellen, weergaven en controllers mappen.

Binnen deze mappen, open controllers / IndexController.php en views / scripts / index / index.phtml. Wanneer u beide bestanden van dichtbij bekijkt, ziet u dat de startpagina die we hierboven hebben gezien (Welkom bij Zend Framework) wordt feitelijk door beide bestanden uitgevoerd. Dus hoe noemt Zend Framework deze?

Uitleg over de standaard applicatie-routering van Zend Framework

Standaard volgen alle URL's in uw Zend Framework-project een bepaald formaat:

[url] / [controller] / [actie] / [GET parameter 1 waarde] / ... / [GET parameter x] / [GET parameter x waarde]

Een andere standaard is dat als een controller en / of actie niet wordt aangeboden, ze beiden standaard naar inhoudsopgave. Dus bellen http: //thenextsocial.local is eigenlijk hetzelfde als bellen http: //thenextsocial.local/index/index of zelfs http: //thenextsocial.local/index.


Zend Framework standaard routing cyclus

Zend Framework neemt dan de controllerwaarde en zoekt ernaar in de controllers map, namelijk onze IndexController.php het dossier. Binnen het controllerbestand neemt het onze actiewaarde en voert het die methode uit, wat is indexAction. Nadat de actie in de controller is uitgevoerd, rendert ZF het weergavebestand automatisch in de weergavemap in de volgende indeling:

... /application/views/scripts/[controller]/[action].phtml

Dat is waarom we de Welkom bij Zend Framework pagina, sinds index.phtml bevat de HTML-code voor deze pagina.


Stap 5: geef gegevens door van een controller naar zijn weergave

Het is relatief eenvoudig om gegevens van een controller door te geven aan zijn weergave. Elk controllerobject wordt standaard gemaakt om er een view-object mee te instantiëren. Toegang tot dit view-object wordt gedaan via de $ This-> view accessor.

Om gegevens naar de weergave te verzenden, wijzen we eenvoudig variabelen toe aan het view-object en geven deze waarden, zoals:

 $ this-> view-> variable_name = "variabele waarde";

Keer terug naar ons project, open IndexController.php in de controllers map en in de indexAction methode, laten we de huidige datum en tijd naar onze mening.

 public function indexAction () // actie body $ this-> view-> current_date_and_time = date ('M d, Y - H: i: s'); 

We moeten dan onze bewerken uitzicht om deze variabele uit te voeren. Om dit te doen, open index.phtml in de view-map en voeg de volgende code toe:

... 

Welkom bij de Zend Framework!


Het is nu current_date_and_time; ?>

Dit is de hoofdpagina van uw project

...

Zoals u kunt zien, is toegang tot de variabele vanuit het weergavebestand net zo eenvoudig als het echoën van de variabele via de opdracht echo PHP, echo $ this-> variable_name;.

Vernieuw nu je browser en je zou de huidige datum en tijd op de pagina moeten zien.


Stap 6: Maak een lay-out in Zend Framework

Het is je misschien opgevallen dat de html-scripts in ons project slechts fragmenten zijn en geen volledige HTML-pagina's, dus ze missen html, hoofd en lichaam -tags. Dit is eigenlijk geen fout, maar werd gedaan door het ontwerp - op deze manier retourneren alle acties inhoud die alleen betrekking heeft op de actie zelf, niet op de hele applicatie. Door een globale lay-out voor onze site te maken, kunnen we een consistente HTML-container implementeren voor al onze HTML-scripts.

Om aan de slag te gaan, openen we opnieuw onze opdrachtprompt en geven we de volgende opdracht. Zorg ervoor dat je in de thenextsocial map.

zf lay-out inschakelen

Een lay-out inschakelen in ons Zend Framework-project

De uitvoer na het uitvoeren van de opdracht suggereert dat een lay-outbestand wordt genoemd layout.phtml is gemaakt binnen de application / lay-outs / scripts map. Laten we het openen en een kijkje nemen naar wat erin zit:


layout.phtml inhoud

Het bevel echo $ this-> layout () -> inhoud; is eigenlijk het lay-outbestand dat alle inhoud van de weergave weergalmt. Om onze globale lay-out te maken, moeten we deze opdracht omspannen met onze HTML:

    The Next Social      

Dit is de kop!

lay-out () -> inhoud; ?>

Dit is het voettekstje!

Vernieuw nu uw browser opnieuw en u zou de wijzigingen moeten zien:


Onze indexactie met bijbehorende lay-out

Stap 7: Maak nieuwe controllers en acties

Door de ZF CLI-tool te gebruiken, kunnen we zeer snel nieuwe controllers en acties creëren. Om dit te doen, voert u eenvoudig de volgende opdracht uit:

zf controller aanmaken Over

Wat betreft is de naam van onze nieuwe controller. Als je in de controllers map, zou u een AboutController.php bestand, wat aangeeft dat onze generatie van de controller succesvol was. U kunt ook de inhoud van de keer bekeken map en zie dat een nieuwe about / index.phtml bestand is gemaakt voor onze Wat betreft controleur!


Het creëren van onze Over-controller

We zouden dan toegang moeten hebben tot deze controller door naar te gaan http: //thenextsocial.local/about

Standaard maakt de ZF CLI-tool één actie voor onze controller, de indexAction. Maar wat als we andere acties wilden toevoegen aan de controller?

Een nieuwe actie maken

Het maken van een nieuwe actie is net zo eenvoudig als het maken van een nieuwe controller. Om dit te doen, voert u gewoon de volgende opdracht uit:

zf creëer actie over ons

Hiermee wordt effectief een nieuwe actie gemaakt met de naam ons binnen in de Wat betreft controller. Controle van de AboutController.php bestand, zou u een nieuwe moeten zien usAction () methode, evenals een nieuwe us.phtml bestand in de wat betreft bekijk map.


Onze us-actie maken in de Over-controller

Zoals u kunt zien, zijn we sterk afhankelijk van de ZF CLI-tool om acties en controllers te genereren. Het handmatig creëren ervan werkt op dezelfde manier; de ZF CLI-tool maakt het gewoon eenvoudiger en doet automatisch het zware werk voor ons.


Conclusie

Na het lezen van deze tutorial zou je het volgende al moeten weten:

  • Waar de nieuwste Zend Framework-bestanden te downloaden
  • Waar en hoe lokaal op te zetten
  • Het maken van uw eerste Zend Framework-project en het opzetten van een VirtualHost op uw webserver
  • Hoe precies implementeert Zend Framework het MVC-patroon en de standaard applicatie-routering
  • Gegevens van een controller doorgeven aan zijn weergave
  • Een site-brede lay-out maken voor uw Zend Framework-toepassing
  • Nieuwe controllers en acties maken

Vanuit deze kennis zou je gemakkelijk in staat moeten zijn om statische webpagina's te maken. Maar we weten allemaal dat dit niet genoeg is!

In onze volgende tutorial leren we alles over het creëren van het meest cruciale onderdeel van elke webtoepassing, de model-, en maken The Next Social een dynamische site!

Tot die tijd, blijf op de hoogte!

Postscriptum Ik heb me geregistreerd thenextsocial.com voor de doeleinden van dit project. Bezoek de site regelmatig en u ziet het transformeren van een eenvoudige site naar de volledige sociale netwerksite die we aan het einde van deze serie willen hebben. Daarnaast is ook alle broncode die in de serie is gemaakt beschikbaar op deze GitHub-repository!