CakePHP Tutorial for begyndere: Hvad er CakePHP Framework?

โšก Smart opsummering

CakePHP-vejledningen dรฆkker open source PHP-frameworket til hurtig, MVC-baseret webapplikationsudvikling. Denne vejledning forklarer, hvad CakePHP er, hvorfor teams vรฆlger det, hvordan man installerer det, dets mappestruktur og konfiguration, navngivningskonventioner og hvordan Model-View-Controller-mรธnsteret driver en CakePHP-applikation.

  • ๐ŸŽ‚ Hvad CakePHP er: CakePHP er et open source MVC-framework, der bygger og vedligeholder PHP-webapplikationer med mindre kode.
  • โšก Hvorfor bruge det: Det tilbyder hurtig udvikling, databaseabstraction, indbygget validering og sรธgemaskinevenlig URLer ud af kassen.
  • ๐Ÿ“ฆ Installation: Composer installerer CakePHP med รฉn create-project-kommando; den nuvรฆrende version 5 krรฆver PHP 8.1 eller nyere.
  • ๐Ÿ“ Mappestruktur: Ryd mapper, der adskiller kildekode, konfiguration, test, logfiler, plugins og den offentlige webrod for at sikre vedligeholdelse.
  • ๐Ÿ”ค Konventioner: Konvention frem for konfiguration betyder, at ensartet navngivning af modeller, controllere og visninger reducerer standardteksten.
  • ๐Ÿ” MVC-flow: Modeller hรฅndterer data, views hรฅndterer output, og controllere ruter flowet, keepping bekymringer klart adskilt.
  • ๐Ÿค– AI Assist: AI-vรฆrktรธjer kan understรธtte CakePHP CRUD-apps og hjรฆlpe med at migrere et รฆldre CakePHP-projekt til version 5.

CakePHP-vejledning

Hvad er CakePHP?

CakePHP er et open source-framework til hurtig udvikling og vedligeholdelse af webapplikationer bygget i PHP. Det er baseret pรฅ konceptet med MVC-arkitektur, som hjรฆlper med at bygge PHP-webapplikationer nemt og enkelt med mindre kode. CakePHP hjรฆlper dig ogsรฅ med at adskille forretningslogik fra datalaget og prรฆsentationslaget.

Hvorfor bruge CakePHP Framework?

Her er de primรฆre fordele/fordele ved at bruge CakePHP-frameworket:

  • CakePHP er langt en af โ€‹โ€‹de hurtigste webudviklingsplatforme.
  • CakePHP giver udviklere mulighed for at fรฅ forbedret kontrol over databasen og SQL-forespรธrgsler.
  • Det hjรฆlper brugerne med hurtigt at udvikle robuste webapplikationer uden at miste deres miljรธfleksibilitet.
  • Stรธtte til PostgreSQL, SQLite, MySQLog PEAR-DB for ADODB, en databaseabstraction bibliotek.
  • Gรธr det sรธgemaskinevenligt URLs.
  • Tilbyder funktioner som inputvalidering og saneringsvรฆrktรธjer, der gรธr appen sikker.
  • Skabeloner med velkendt PHP-syntaks.

Sรฅdan installeres CakePHP

Den anbefalede mรฅde at installere CakePHP pรฅ er med Composer, PHP-afhรฆngighedshรฅndteringen. Nรฅr Composer er installeret, skal du kรธre kommandoen nedenfor for at oprette et nyt projektskelet.

composer create-project --prefer-dist cakephp/app:~5.0 my_app

Kommandoen downloader CakePHP og dens afhรฆngigheder til en mappe med navnet my_app. Du kan derefter starte den indbyggede server med bin/cake server og รฅbn http://localhost:8765 i din browser. Bemรฆrk at CakePHP 5 krรฆver PHP 8.1 eller nyere.

Historien om CakePHP

I denne CakePHP-tutorial vil vi gennemgรฅ historien bag CakePHP-frameworket:

ร…r Milestone
2005 CakePHP blev udviklet af Michal Tatarynowicz den 15. april 2005.
2005 CakePHP udgav den under MIT-licensen og รฅbnede den for fรฆllesskabets udviklere.
2005 Larry E Masters tog over som hovedudvikler.
2006 Version 1.0 blev udgivet.
2011 Version 2 blev udgivet.
2014 Version 3 blev udgivet, en komplet omskrivning af tidligere versioner.
2016 Version 3.3 af CakePHP blev udgivet med mange avancerede funktioner.
2019 Version 4.0 blev udgivet, hvilket moderniserede frameworket.
2023 CakePHP 5.0 blev udgivet og krรฆver PHP 8.1 eller nyere. Den nuvรฆrende udgivelse i 2026 er CakePHP 5.3.x.

Funktioner af CakePHP

Her er vigtige funktioner i CakePHP.

  • Aktivt, venligt fรฆllesskab
  • MVC arkitektur
  • Indbygget validering
  • Fungerer fra enhver hjemmesidemappe, med eller uden Apache-konfiguration involveret.
  • Skabelonmotor
  • Cache-operationer
  • Nemme interaktioner med CRUD-databasen
  • Hรฅndtering af komponenter som e-mail, cookie, sikkerhed, session og anmodning
  • Se hjรฆlpere til JavaScript, Ajax, HTML-formularer og mere

CakePHP- Mappestruktur

Nu i denne CakePHP-rammevejledning lรฆrer vi om CakePHP-mappestrukturen.

Nedenfor er en mappestruktur af CakePHP:

Folder Beskrivelse
Tests Denne folder indeholder testcases til din ansรธgning.
tmp Tmp-mappen gemmer midlertidige data.
Vendor Denne mappe er hvor CakePHP og andre programafhรฆngigheder er installeret.
Webroot Webroden gemmer alle de filer, du รธnsker skal vรฆre offentligt tilgรฆngelige.
Bin Bin-mappen indeholder Cake-konsollens eksekverbare filer.
Logs Den indeholder dine logfiler, som afhรฆnger af din logkonfiguration.
Config Konfigurationsmappen gemmer de konfigurationsfiler, som CakePHP bruger.
plugins Det er her, de plugins, som din applikation bruger, gemmes.
src Den indeholder koden til din applikation, sรฅsom controllere, enheder og adfรฆrdsmรธnstre. Locale gemmer strengfiler til internationalisering, og Model indeholder din applikations tabeller, enheder og adfรฆrdsmรธnstre.

Konfiguration af CakePHP

CakePHP leveres som standard med en enkelt konfigurationsfil. Det giver dig ogsรฅ mulighed for at รฆndre det i henhold til dine krav. Der er en mappe kaldet "config" givet til dette formรฅl.

Variabelt navn Beskrivelse
Debug Giver dig mulighed for at รฆndre CakePHP debugging output.
App.navneomrรฅde Hjรฆlper dig med at finde app-klasserne.
App.baseUrl Fjern kommentaren til dette sรธgeord, nรฅr du ikke รธnsker at bruge Apaches mod_rewrite med CakePHP.
App.kodning Giver dig mulighed for at definere, hvilken kodning din applikation bruger.
App.base Det er basismappen, som appen befinder sig i. Hvis den er angivet som falsk, vil dette blive automatisk registreret.
App.fullBaseUrl Fuldt kvalificeret domรฆnenavn.
App.webroot Det er webrot-mappen.
App.wwwRoot Filstien til webroot.
App.jsBaseUrl Sti til den offentlige js-mappe.
App.stier Konfigurer stier til ikke-klassebaserede ressourcer.
App.cssBaseUrl Det er webstien til den offentlige CSS-mappe under webroot.
Sikkerhedssalt Det er en tilfรฆldig streng, der bruges i hashing.
Asset.timestamp Denne variabel tilfรธjer et tidsstempel, nรฅr de korrekte hjรฆlpere bruges.

Cake- PHP navngivningskonventioner

Cake fรธlger ideen om konvention frem for konfiguration. Navngivningskonventionen giver dig mulighed for at organisere webapplikationens drift. I denne metode skal mere end รฉt ord i et navn adskilles af "_", nรฅr filen navngives, og camel case, nรฅr klassen navngives.

MVC-delene skal fรธlge syntaksen nedenfor:

File Name Klassens navn Basisklassenavn Lokation
Model Entalsform af tabelnavnet med filtypenavnet .php, f.eks. order.php Filnavnet i Camel-sagen, f.eks.: Ordre Appmodel /app/modeller
controller tabelnavn_controller med en .php-udvidelse, f.eks.: orders_controller.php Tabelnavnet tilfรธjet med Controller, f.eks.: OrdersController AppController /app/controllere
Se Handlingsnavnet i controlleren med filtypenavnet .ctp, f.eks. add.ctp Ingen klasser; en visning indeholder HTML-tags og PHP. /app/views/controller navn

Database konfiguration

CakePHP giver dig mulighed for at konfigurere databasen i config / app.php fil. Den leverer en standardforbindelse med angivne parametre, som du kan รฆndre efter eget valg.

Vigtige parametre er angivet nedenfor:

Parameter Beskrivelse
port (valgfrit) TCP-porten eller Unix-stikket, der bruges til at oprette forbindelse til serveren.
Tidszone Servertidszone skal indstilles.
Planlรฆg Det hjรฆlper dig med at specificere hvilket skema du kan bruge.
unix_socket Bruges af drivere til at oprette forbindelse via Unix socket-filer.
ssl_nรธgle Det er filstien til SSL-nรธglefilen.
ssl_cert Det er filstien til SSL-certifikatfilen.
ssl_ca Det er filstien til SSL-certifikatmyndigheden.
Log Dette udtryk hjรฆlper dig med at udfรธre forespรธrgselslogning.
I det En liste over forespรธrgsler, som skal sendes til databaseserveren, nรฅr forbindelsen oprettes.
citatIdentifikatorer Sรฆt til sand, hvis du vil bruge reserverede ord eller specialtegn.

Hvordan virker MVC i CakePHP?

Nu vil vi lรฆre, hvordan MVC fungerer i CakePHP i denne CakePHP framework-tutorial.

Det er en dynamisk mรฅde at bygge den primรฆre mekanisme i en webapplikation. Modellen, viewet og controlleren er adskilte fra hinanden.

MVC-arkitektur i CakePHP
MVC-arkitektur i CakePHP

CakePHP opdeler operationer i tre dele:

  • Modeller: Anvendes til alle databaseinteraktioner.
  • Visninger: Bruges til alle output og skรฆrme.
  • Controllere: Bruges til at styre applikationsflowet.

Her er trinnene til at bruge MVC-arkitekturen i CakePHP:

Trin 1) Klienten eller brugeren interagerer med visningen.

Trin 2) Visningen advarer controlleren om den specifikke hรฆndelse.

Trin 3) Controlleren sender en databaseanmodning til modellen og opdaterer modellen.

Trin 4) Modellen advarer om, at synspunktet har รฆndret sig.

Trin 5) Visningen modtager modeldataene og opdaterer sig selv i henhold til de modtagne data.

Hvorfor bruge MVC?

  • CakePHP MVC hjรฆlper dig med at adskille forretningslogik fra prรฆsentation og datahentning.
  • Et websted er opdelt i logiske sektioner, som du kan styre med en specifik controller.
  • Nรฅr man tester og fejlfinder en applikation, kan enhver udvikler finde og rette fejl uden at have fuldstรฆndige kodeoplysninger.

Ulemper ved at bruge CakePHP-rammen

  • Dokumentationssupporten til CakePHP er ikke sรฅ omfattende, som den burde vรฆre.
  • For at bruge CakePHP skal udvikleren opdatere standardruterne til at oprette fancy databaser. URLs, hvilket er mere arbejde sammenlignet med nogle andre PHP-frameworks.
  • CakePHP bruger envejsrouting sammenlignet med andre frameworks.
  • At lรฆre PHP Framework er ikke altid let for begyndere.
  • Envejsrouting er en anden ulempe sammenlignet med frameworks som Ruby on Rails.

Ofte Stillede Spรธrgsmรฅl

Ja, til vedligeholdelse af eksisterende CakePHP-projekter og til teams, der vรฆrdsรฆtter dens konvention-fremfor-konfiguration-tilgang. Laravel og Symfony har stรธrre communities, men CakePHP 5 vedligeholdes aktivt og forbliver et solidt, produktivt framework.

Begge er MVC PHP-frameworks. Laravel har et stรธrre รธkosystem, udtryksfuld syntaks og Eloquent ORM. CakePHP lรฆgger vรฆgt pรฅ strenge konventioner og hurtig scaffolding med mindre konfiguration. Laravel er mere populรฆrt; CakePHP kan vรฆre hurtigere til at starte en konventionel app.

CakePHP 5, den nuvรฆrende hovedversion, krรฆver PHP 8.1 eller nyere. ร†ldre CakePHP 4 understรธttede PHP 7.4 og nyere, men den er ved at vรฆre ved at vรฆre fรฆrdig, sรฅ nye projekter bรธr mรฅlrette CakePHP 5 pรฅ en moderne PHP-udgivelse.

Ja. AI kan generere migrering, entitet, tabel, controller og skabeloner til en CRUD-ressource i henhold til CakePHP-konventioner og forklare bake-konsolkommandoerne. RevSe valideringsreglerne og test hver handling.

Ja. AI kan markere forรฆldede metoder, opdaterede navnerum og signaturรฆndringer og foreslรฅ udskiftninger trin for trin. Da migreringer er store, skal du opgradere trinvist og kรธre testpakken efter hver รฆndring.

Opsummer dette indlรฆg med: