cakephpAan de slag met cakephp


Opmerkingen

Deze sectie geeft een overzicht van wat cakephp is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen cakephp vermelden en naar de gerelateerde onderwerpen verwijzen. Omdat de documentatie voor cakephp nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

versies

Versie Publicatiedatum
1.2.0 2008-12-26
1.3.0 2010-04-25
2.0.0 2011-10-17
3.0.0 2015/03/22

Eenvoudig eerste leeg project

Eerste creatie en download (CakePHP 3.x)

De eenvoudigste manier om een nieuw CakePHP-project te maken is via Composer (als je niet weet hoe componist werkt, kijk dan hier voor meer info)

Composer installeren

Volg deze handleiding als u het moet installeren en op een Windows-computer staat

Als u Linux / Unix / OSX gebruikt, volgt u deze handleiding

Maak het eerste CakePHP-project

Open een consolevenster en ga naar uw php-installatie (in Windows met de standaard xampp-installatie is dit C:\xampp\php )

Voer de volgende opdracht uit om een leeg project te maken:

php composer.phar create-project --prefer-dist cakephp/app name_of_your_project
 

Bakken / Model / View / Controllers

De magie van CakePHP is bakken - een geautomatiseerde generatie van controller-, model- en view-code met basis CRUD-opties.

Voordat u gaat bakken, moet u uw databaseverbinding hebben geconfigureerd. Om dit te doen, moet u het bestand config/app.php in uw project bewerken.

'Datasources' => [
'default' => [
    'className' => 'Cake\Database\Connection',
    'driver' => 'Cake\Database\Driver\Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'username' => 'my_app', //in basic xampp: root
    'password' => 'sekret', //in basic xampp: ''
    'database' => 'my_app', //name of the database you want to connect to your project
    'encoding' => 'utf8',
    'timezone' => 'UTC',
    'cacheMetadata' => true,
]
 

],

Als uw database correct is aangesloten, voert u bin/cake bake in de hoofdmap van uw project in een consolevenster in.

Dit zou zoiets moeten opleveren:

Welcome to CakePHP v3.1.6 Console
---------------------------------------------------------------
App : src
Path: /var/www/cakephp.dev/src/
PHP: 5.5.8
---------------------------------------------------------------
The following commands can be used to generate skeleton code for your application.

Available bake commands:

- all
- behavior
- cell
- component
- controller
- fixture
- form
- helper
- mailer
- migration
- migration_snapshot
- model
- plugin
- shell
- shell-helper
- template
- test

By using `cake bake [name]` you can invoke a specific bake task.
 

Voor de eenvoud gaan we alles bakken met de standaardinstellingen. Om dit te doen, voert u in

cake bake all
 

Dit geeft iets in die richting uit:

Welcome to CakePHP v3.2.11 Console
---------------------------------------------------------------
App : src
Path: C:\xampp\htdocs\tipping\src\
PHP : 5.6.15
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible model names based on your database:
- users
- blogs
Run `cake bake all [name]` to generate skeleton files.
 

Door cake bake all <modelNameYouWantToBake> draaien cake bake all <modelNameYouWantToBake> het model, de tafel, de controller, het armatuur en de weergavebestanden. Voer dit uit voor elke mogelijke modelnaam en u hebt een functionerend project met standaard CRUD-opties.

Nu kunt u uw browser openen en zien hoe het eruit ziet en het project uitbreiden met uw eigen logica

CakePHP 2.x Basisintroductie

Zal het hebben over de mappenstructuur van CakePHP, wat elke map betekent.

CakePHP heeft enkele hoofdmappen

  1. app - Het bevat de broncode van onze applicatie, al onze code ligt in deze map.
  2. lib - Dit is de cakephp core liberary, het bevat alle basis cakephp bibliotheekcode. Het wordt niet aangeraden om code in deze map te bewerken, omdat deze fouten kan veroorzaken tijdens het upgraden van de cakephp-bibliotheek.
  3. plug-ins - Dit bevat de cakephp-plug-inscode die zal worden gebruikt voor onze applicatie.
  4. leveranciers - Dit bevat externe code. Deze code gebruikt geen cakephp-bibliotheek.
  5. index.php - Dit is het indexbestand.

We kunnen meerdere applicaties binnen een enkel project laten hosten. dat wil zeggen dat ze dezelfde lib-mappen, plug-ins en leveranciers kunnen gebruiken.

Als u de lib-code wilt wijzigen, kunt u deze het beste uitbreiden in onze app-map en de wijzigingen uitvoeren.

De map Plug-ins en leveranciers worden gedeeld door alle applicaties die in dezelfde map worden gehost.

index.php is het bestand dat als eerste wordt genoemd.

voer hier de afbeeldingsbeschrijving in

Nu moeten we naar onze app-map springen

CakePHP3 Mapstructuur

Nadat je hebt gedownload, zijn dit de bestanden en mappen die je zou moeten zien:

  • De map bin bevat de uitvoerbare uitvoeringen van de Cake-console.
  • De configuratiemap bevat de configuratiebestanden die CakePHP gebruikt. Gegevens van databaseverbindingen, bootstrapping, kernconfiguratiebestanden en meer moeten hier worden opgeslagen.
  • In de map met plug-ins worden de plug-ins opgeslagen die uw toepassing gebruikt.
  • De map met logboeken bevat normaal gesproken uw logboekbestanden, afhankelijk van uw logboekconfiguratie.
  • In de map src worden de bestanden van uw toepassing geplaatst.
  • In de map met tests kunt u de testcases voor uw toepassing plaatsen.
  • In de map tmp slaat CakePHP tijdelijke gegevens op. De daadwerkelijke gegevens die worden opgeslagen, zijn afhankelijk van hoe u CakePHP hebt geconfigureerd, maar deze map wordt meestal gebruikt om modelbeschrijvingen en soms sessie-informatie op te slaan.
  • In de map met leveranciers worden CakePHP en andere toepassingsafhankelijkheden geïnstalleerd. Maak een persoonlijke toezegging om geen bestanden in deze map te bewerken.
  • De webroot-directory is de openbare document root van uw applicatie. Het bevat alle bestanden die u voor iedereen toegankelijk wilt maken.

Zorg ervoor dat de mappen tmp en logs bestaan en beschrijfbaar zijn, anders worden de prestaties van uw applicatie ernstig beïnvloed. In de foutopsporingsmodus waarschuwt CakePHP u als dit niet het geval is.

Binnen src-map

In de map src van CakePHP doet u het grootste deel van uw applicatie-ontwikkeling.

Consolemap bevat de console-opdrachten en consoletaken voor uw toepassing. Zie Hulpprogramma's voor schelpen, taken en console voor meer informatie.

De map Controller bevat de controllers van uw toepassing en hun componenten.

In de map Local worden stringbestanden opgeslagen voor internationalisering.

Model map bevat de tabellen, entiteiten en het gedrag van uw aanvraag.

Weergave - hier worden presentatieklassen geplaatst: cellen, helpers en sjabloonbestanden.

Sjabloon - presentatiebestanden worden hier geplaatst: elementen, foutpagina's, lay-outs en sjabloonbestanden bekijken.

Installatie of instellingen

Voorwaarden

De volgende installatiehandleiding is voor cakephp 2.8 en hoger. Alle cakephp-versies lager dan 2.8 zijn niet compatibel met php 7

HTTP-server. Bijvoorbeeld: Apache. Het hebben van mod_rewrite heeft de voorkeur, maar is geenszins vereist.

  • PHP 5.5.9 of hoger (inclusief PHP 7).
  • mbstring PHP-extensie
  • intl PHP extensie

Aandacht! In zowel XAMPP als WAMP werkt de extensie mbstring standaard. In XAMPP is de extensie intl inbegrepen, maar u moet de extensie = php_intl.dll in php.ini verwijderen en de server opnieuw opstarten via het XAMPP-configuratiescherm. In WAMP is de extensie intl standaard 'geactiveerd' maar werkt deze niet. Om het te laten werken, moet je naar de php-map gaan (standaard) C: \ wamp \ bin \ php \ php {version}, kopieer alle bestanden die eruit zien als icu * .dll en plak ze in de apache bin-directory C: \ wamp \ bin \ apache \ apache {versie} \ bin. Start vervolgens alle services opnieuw en het zou OK moeten zijn.

Hoewel een database-engine niet vereist is, denken we dat de meeste applicaties er een zullen gebruiken. CakePHP ondersteunt verschillende databaseopslag-engines:

  • MySQL (5.1.10 of hoger)
  • PostgreSQL
  • Microsoft SQL Server (2008 of hoger)
  • SQLite 3

Voorwaarden

1-HTTP Server. For example: Apache. Having mod_rewrite is preferred, but by no means required.
2-PHP 5.5.9 or greater (including PHP 7)
3-mbstring PHP extens ion
4-intl PHP extension
 

Ik maak meestal een apache- en mysql-installatie op een linuxbox. Ik kan ook Windows gebruiken, maar ik raad het niet aan;) Dus maak ik meestal een nieuwe vermelding in het bestand / etc / hosts om een sitenaam beschikbaar te maken voor cakephp.

127.0.0.1   localhost caketest.local
 

volgende stap om alle cakephp-bestanden te kopiëren naar een submap in / home / mijngebruikersnaam / public_html / caketest

app
cake
index.php
plugins
README
vendors
.htaccess
 

dan heb ik de site ingesteld op apache (niet nodig),

<VirtualHost *: 80> DocumentRoot "/ home / mijngebruikersnaam / public_html / caketest" Servernaam caketest.local
# Dit moet worden weggelaten in de productieomgeving SetEnv APPLICATION_ENV ontwikkeling

<Directory "/home/myusername/public_html/caketest">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
 

herstart apache. u moet ook de .htaccess-bestanden bewerken en een RewriteBase-instructie met het pad naar de werkelijke map plaatsen, bijv.

 RewriteBase /~myusername/caketest
 

maak een database, stel de db-verbinding in cake configuratiebestanden in en dat is alles. u kunt uw browser verwijzen naar http: //caketest.local als u geen url van een testsite wilt, kunt u hosts overslaan en apache-vhostcreatie maken, maar de URL die moet worden gebruikt, moet http: / localhost / ~ mijngebruikersnaam / caketest zijn

een ander belangrijk ding is om userdir modul in apache in te schakelen, en ook te controleren of het gebruik van php ook in userdirs is ingeschakeld.