Iniziare con codeigniter

Osservazioni

CodeIgniter è un framework MVC scritto in e per PHP.

È leggero rispetto ad altri framework MVC là fuori, al costo di avere meno funzionalità, ad esempio non esiste un sistema di autenticazione integrato che potrebbe far parte di altri framework.

CodeIgniter è una buona scelta di framework per coloro che stanno iniziando con MVC in quanto non impone alcun particolare standard per la denominazione e la struttura del codice; ma è adatto anche a progetti più grandi in cui una vasta gamma di funzionalità contenute in altri framework potrebbe non essere necessaria.

Versioni

Versione Data di rilascio
Versione Beta 1.0 2006-02-28
Versione 2.0.0 2011-01-28
Versione 2.2.0 2014/06/02
Versione 3.0.0 2015/03/30
Versione 3.1.3 2017/01/09
La versione è 3.1.4 2017/03/20
La versione è 3.1.5 2017/06/19

Aumenta la sicurezza nascondendo la posizione dei tuoi file CodeIgniter

All'interno di CodeIgniter ci sono due directory principali di cui preoccuparsi: sistema e applicazione . La cartella di sistema contiene il core bud di CodeIgniter. La cartella dell'applicazione conterrà tutto il codice specifico per l'applicazione, inclusi modelli, controllori, viste e altre librerie pertinenti.

Per le istruzioni di installazione di CodeIgniter, nell'interesse della protezione dell'applicazione, sia la cartella del sistema che quella dell'applicazione devono essere posizionate sopra la radice Web in modo che non siano direttamente accessibili tramite un browser. Per impostazione predefinita, i file .htaccess sono inclusi in ogni cartella per aiutare a prevenire l'accesso diretto, ma è meglio rimuoverli dal pubblico accesso nel caso in cui la configurazione del server web cambi o non rispetti il ​​.htaccess.

├── CodeIgniter 
│   ├── application
│   ├── system
│   ├── wwwroot
│   │   ├── index.php

Dopo aver spostato il sistema e le cartelle dell'applicazione, apri il file index.php principale e imposta $system_path , $application_folder variables, preferibilmente con un percorso completo, ad esempio ' /www/MyUser/system' . Tuttavia, i percorsi relativi dovrebbero funzionare.

Per Linux / Apache:

$application_folder = './application';
$system_path = './system';

Per Windows / IIS:

$application_folder = '../application/';
$system_path = '../system/';

Installazione e configurazione

Ambiente Windows

  1. Installa XAMPP o WAMP
  2. Scarica e decomprimi il pacchetto da Codeigniter.com
  3. Estrai tutto il documento nello spazio del server (htdocs o directory www)

Ambiente Mac

  1. Installa MAMP
  2. Scarica e decomprimi il pacchetto da Codeigniter.com
  3. Estrai tutto il documento nello spazio del server (htdocs)

Ambiente Linux

  1. Scarica e decomprimi il pacchetto da Codeigniter.com
  2. Posiziona la cartella estratta in / var / www (in WAMP) o xampp / htdocs (XAMPP)

GitHub

git clone https://github.com/bcit-ci/CodeIgniter.git


Se segui correttamente il sistema, otterrai la schermata seguente.

inserisci la descrizione dell'immagine qui


URL di base

  1. Vai a application/config/config.php
  2. Definire l'URL di base come $config['base_url'] = 'http://localhost/path/to/folder';

Rimuovi index.php dall'URL

Configurazione di Apache
  1. vai alla radice

  2. crea il file htaccess

  3. Aggiungi sotto il codice al suo interno

    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]
    

Nota: il codice .htaccess varia a seconda del server di hosting. In alcuni server di hosting (ad esempio: Godaddy) è necessario utilizzare un extra ? nell'ultima riga del codice precedente. La seguente riga sarà sostituita dall'ultima riga nel caso applicabile:

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Configurazione Nginx
  1. Aprire il file di configurazione di nginx (per impostazione predefinita: /etc/nginx/sites-available/default )

  2. Aggiungi sotto il codice al suo interno

    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;
       }
    }
    

Configurazione del database

  1. Vai a application/config/database.php
  2. Imposta le seguenti variabili di configurazione.
    • Ospite
    • Nome utente
    • Parola d'ordine
    • Nome del database
    • Porta

Imposta il controller di default

  1. Vai a application/config/routes.php
  2. imposta il seguente valore della variabile di configurazione con il nome del controller.
    • default_controller

Libreria e helper di caricamento automatico

  1. Vai a application/config/autoload.php
  1. imposta il valore di caricamento automatico come $autoload['libraries'] = array('database', 'session');
  2. imposta il valore Helper come $autoload['helper'] = array('url', 'file', 'form', 'html', 'text');

Esegui più applicazioni su un unico sistema di elementi della configurazione

Codeigniter può essere configurato per eseguire più di un progetto senza duplicare i file core CI.

È possibile suddividendo il lato Applicazioni CI. Ad esempio, prendiamo progetto del sito Web, che contiene applicazioni di Content Management System (CMS) front-end e back-end . In questo caso la struttura della cartella CI sarà simile a:


Struttura delle cartelle:

├── Codeigniter
│   ├── applications
│   │   ├─ front-end
│   │   │   ├── views
│   │   │   ├── models
│   │   │   ├── controllers
│   │   │   ├── config
│   │   │   └── ...
│   │   ├─ back-end
│   │   │   ├── views
│   │   │   ├── models
│   │   │   ├── controllers
│   │   │   ├── config
│   │   │   └── ...
│   │   │
│   ├── system
│   │   ├── core
│   │   ├── database
│   │   ├── helpers
│   │   └── ...
│   │   
│   ├── index.php
└   └── backend.php

Nella cartella delle applications abbiamo creato due cartelle: front-end e back-end e copiato tutto il contenuto predefinito delle applications in queste due cartelle.

Inoltre abbiamo duplicato il file index.php nella cartella principale come backend.php

La prossima è configurare l' CI configurazione in modo che funzioni con queste due istanze dell'applicazione.


Configurazione Codeigniter :

Aprire i file index.php e backend.php e aggiornare application_folder confg:

//index.php
$application_folder = 'applications/front-end';

//backend.php
$application_folder = 'applications/back-end';

Dopo la configurazione di cui sopra, CI è pronto per eseguire due applicazioni in un sistema CI:

Richiesta su example.com/Codeigniter/index.php aprirà l'app front-end

Richiesta su example.com/Codeigniter/backend.php aprirà l'app di back-end