codeigniter Zelfstudie
Aan de slag met codeigniter
Zoeken…
Opmerkingen
CodeIgniter is een MVC-raamwerk geschreven in en voor PHP.
Het is licht in vergelijking met andere MVC-frameworks die er zijn, ten koste van minder functionaliteit, er is bijvoorbeeld geen ingebouwd authenticatiesysteem dat een deel van andere frameworks kan zijn.
CodeIgniter is een goede keuze van frameworks voor degenen die beginnen met MVC omdat het geen specifieke normen voor naamgeving en structuur van code dwingt; maar het is ook geschikt voor grotere projecten waar een groot aantal functies in andere frameworks misschien niet nodig is.
versies
Versie | Publicatiedatum |
---|---|
Versie Beta 1.0 | 2006-02-28 |
Versie 2.0.0 | 2011-01-28 |
Versie 2.2.0 | 2014/06/02 |
Versie 3.0.0 | 2015/03/30 |
Versie 3.1.3 | 2017/01/09 |
Versie is 3.1.4 | 2017/03/20 |
Versie is 3.1.5 | 2017/06/19 |
Installatie en instellingen
Windows-omgeving
- Installeer XAMPP of WAMP
- Download en pak het pakket uit van Codeigniter.com
- Pak al het document uit in de serverruimte (htdocs of www-directory)
Mac-omgeving
- Installeer MAMP
- Download en pak het pakket uit van Codeigniter.com
- Pak al het document in de serverruimte uit (htdocs)
Linux-omgeving
- Download en pak het pakket uit van Codeigniter.com
- Plaats de uitgepakte map in / var / www (in WAMP) of xampp / htdocs (XAMPP)
GitHub
git clone https://github.com/bcit-ci/CodeIgniter.git
Als u het systeem correct volgt, krijgt u het onderstaande scherm te zien.
Basis URL
- Ga naar
application/config/config.php
- Definieer basis-URL als
$config['base_url'] = 'http://localhost/path/to/folder';
Verwijder index.php
van URL
Apache-configuratie |
---|
ga naar root
maak een htaccess-bestand
Voeg de onderstaande code toe
RewriteEngine on RewriteCond $1 !^(index\.php|assets|image|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Opmerking: .htaccess-code varieert afhankelijk van de hosting-server. Moet u in sommige hosting-servers (bijvoorbeeld: Godaddy) een extra gebruiken ?
in de laatste regel van bovenstaande code. De volgende regel wordt in voorkomend geval vervangen door de laatste regel:
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Nginx-configuratie |
---|
Open het nginx-configuratiebestand (standaard:
/etc/nginx/sites-available/default
)Voeg de onderstaande code toe
server { server_name domain.tld; root /path-to-codeigniter-folder; //you codeigniter path index index.html index.php; # set expiration of assets to MAX for caching location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ { expires max; log_not_found off; } location / { # Check if a file or directory index file exists, else route it to index.php. try_files $uri $uri/ /index.php; } location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; } }
Database configuratie
- Ga naar
application/config/database.php
- Stel de volgende configuratievariabelen in.
- Gastheer
- Gebruikersnaam
- Wachtwoord
- Database naam
- Haven
Stel standaardcontroller in
- Ga naar
application/config/routes.php
- stel de volgende configuratievariabele waarde in met uw controller naam.
- default_controller
Bibliotheek en helper automatisch laden
- Ga naar
application/config/autoload.php
- stel Auto laad waarde in zoals
$autoload['libraries'] = array('database', 'session');
- stel Helper waarde in zoals
$autoload['helper'] = array('url', 'file', 'form', 'html', 'text');
Voer meerdere applicaties uit op één CI-systeem
Codeigniter kan worden geconfigureerd om meer dan één project uit te voeren zonder CI-kernbestanden te dupliceren.
Het is mogelijk door de CI-toepassingszijde te splitsen. Laten we bijvoorbeeld het project van de website nemen, dat front-end
en back-end
Content Management System (CMS) -applicaties bevat. In dit geval ziet de CI-mapstructuur er als volgt uit:
Mappenstructuur:
├── Codeigniter
│ ├── applications
│ │ ├─ front-end
│ │ │ ├── views
│ │ │ ├── models
│ │ │ ├── controllers
│ │ │ ├── config
│ │ │ └── ...
│ │ ├─ back-end
│ │ │ ├── views
│ │ │ ├── models
│ │ │ ├── controllers
│ │ │ ├── config
│ │ │ └── ...
│ │ │
│ ├── system
│ │ ├── core
│ │ ├── database
│ │ ├── helpers
│ │ └── ...
│ │
│ ├── index.php
└ └── backend.php
In de map met applications
hebben we twee mappen gemaakt: front-end
en back-end
en alle standaardinhoud van applications
onder deze twee mappen gekopieerd.
We hebben ook het index.php
bestand onder de hoofdmap gedupliceerd als backend.php
Het volgende is het configureren van CI
om te werken met deze twee toepassingsgevallen.
Codeigniter configuratie :
Open index.php- en backend.php- bestanden en update application_folder
confg:
//index.php
$application_folder = 'applications/front-end';
//backend.php
$application_folder = 'applications/back-end';
Na bovenstaande configuratie is CI klaar om twee applicaties onder één CI-systeem uit te voeren:
Verzoek op
example.com/Codeigniter/index.php
opent defront-end
app
Verzoek op
example.com/Codeigniter/backend.php
opent deback-end
app
Verhoog de beveiliging door de locatie van uw CodeIgniter-bestanden te verbergen
Binnen de CodeIgniter zijn er twee hoofdmappen waar u zich zorgen over moet maken: systeem en applicatie . De systeemmap bevat de kern van CodeIgniter. De applicatiemap bevat alle code die specifiek is voor uw applicatie, inclusief modellen, controllers, views en andere relevante bibliotheken.
Volgens de installatie-instructies van CodeIgniter, in het beste belang van het beveiligen van uw applicatie, moeten zowel het systeem als de applicatiemap boven de web root worden geplaatst, zodat ze niet direct toegankelijk zijn via een browser. Standaard worden .htaccess-bestanden in elke map opgenomen om directe toegang te voorkomen, maar het is het beste om ze volledig van openbare toegang te verwijderen in het geval de configuratie van de webserver verandert of zich niet aan de .htaccess houdt.
├── CodeIgniter
│ ├── application
│ ├── system
│ ├── wwwroot
│ │ ├── index.php
Nadat het systeem en de toepassing mappen bewegen, zet de index.php
bestand en zet de $system_path
, $application_folder
variabelen, bij voorkeur met een volledig pad, bijvoorbeeld ' /www/MyUser/system'
. Relatieve paden zouden echter moeten werken.
Voor Linux / Apache:
$application_folder = './application';
$system_path = './system';
Voor Windows / IIS:
$application_folder = '../application/';
$system_path = '../system/';