codeigniterPrimeros pasos con codeigniter


Observaciones

CodeIgniter es un framework MVC escrito en, y para, PHP.

Es liviano en comparación con otros marcos MVC que existen, al costo de tener menos funcionalidad, por ejemplo, no hay un sistema de autenticación integrado que pueda ser parte de otros marcos.

CodeIgniter es una buena opción de marcos para aquellos que están comenzando con MVC, ya que no obliga a ningún estándar en particular para nombrar y estructurar el código; pero también es adecuado para proyectos más grandes donde no se necesita una gran variedad de características contenidas en otros marcos.

Versiones

Versión Fecha de lanzamiento
Versión Beta 1.0 2006-02-28
Versión 2.0.0 2011-01-28
Versión 2.2.0 2014-06-02
Versión 3.0.0 2015-03-30
Versión 3.1.3 2017-01-09
La versión es 3.1.4 2017-03-20
La versión es 3.1.5 2017-06-19

Aumente la seguridad ocultando la ubicación de sus archivos CodeIgniter

Dentro del CodeIgniter, hay dos directorios principales de los que preocuparse: sistema y aplicación . La carpeta del sistema contiene las entrañas del núcleo de CodeIgniter. La carpeta de la aplicación contendrá todo el código específico de su aplicación, incluidos los modelos, controladores, vistas y otras bibliotecas relevantes.

De acuerdo con las instrucciones de instalación de CodeIgniter, en el mejor interés de proteger su aplicación, tanto el sistema como la carpeta de la aplicación deben ubicarse sobre la raíz web para que no sean accesibles directamente a través de un navegador. De forma predeterminada, los archivos .htaccess se incluyen en cada carpeta para ayudar a evitar el acceso directo, pero es mejor eliminarlos del acceso público por completo en caso de que la configuración del servidor web cambie o no cumpla con el .htaccess.

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

Después de mover las carpetas del sistema y de la aplicación, abra el archivo principal index.php y configure las $system_path , $application_folder , preferiblemente con una ruta completa, por ejemplo, ' /www/MyUser/system' . Sin embargo, los caminos relativos deberían funcionar.

Para Linux / Apache:

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

Para Windows / IIS:

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

Instalación y configuración

Entorno de Windows

  1. Instalar XAMPP o WAMP
  2. Descarga y descomprime el paquete de Codeigniter.com
  3. Extraiga todo el documento en el espacio del servidor (directorio htdocs o www)

Entorno Mac

  1. Instalar MAMP
  2. Descarga y descomprime el paquete de Codeigniter.com
  3. Extraer todo el documento en el espacio del servidor (htdocs)

Entorno Linux

  1. Descarga y descomprime el paquete de Codeigniter.com
  2. Coloque la carpeta extraída en / var / www (en WAMP) o xampp / htdocs (XAMPP)

GitHub

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


Si sigue el sistema correctamente, aparecerá la siguiente pantalla.

introduzca la descripción de la imagen aquí


URL base

  1. Ir a la application/config/config.php
  2. Defina la URL base como $config['base_url'] = 'http://localhost/path/to/folder';

Eliminar index.php de la URL

Configuración de Apache
  1. ir a la raíz

  2. crear archivo htaccess

  3. Agregue el siguiente código dentro de él

    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: el código .htaccess varía según el servidor de alojamiento. En algún servidor de alojamiento (por ejemplo: GoDaddy), ¿necesita usar un extra ? En la última línea del código anterior. La siguiente línea será reemplazada con la última línea en caso aplicable:

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
 
Configuración de Nginx
  1. Abra el archivo de configuración nginx (de forma predeterminada: /etc/nginx/sites-available/default )

  2. Agregue el siguiente código dentro de él

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

Configuración de la base de datos

  1. Ir a la application/config/database.php
  2. Establecer las siguientes variables de configuración.
    • Anfitrión
    • Nombre de usuario
    • Contraseña
    • Nombre de la base de datos
    • Puerto

Establecer controlador predeterminado

  1. Ir a la application/config/routes.php
  2. establezca el siguiente valor de variable de configuración con el nombre de su controlador.
    • controlador_predeterminado

AutoLoad Library and Helper

  1. Ir a la application/config/autoload.php
  1. establezca el valor de carga automática como $autoload['libraries'] = array('database', 'session');
  2. establezca el valor de Ayuda como $autoload['helper'] = array('url', 'file', 'form', 'html', 'text');

Ejecutar múltiples aplicaciones en un sistema CI

Codeigniter puede configurarse para ejecutar más de un proyecto sin duplicar los archivos centrales de CI.

Es posible dividiendo el lado de la aplicación CI. Por ejemplo tomemos proyecto de página web, que contiene front-end y back-end las aplicaciones del Sistema de Gestión de Contenidos (CMS). En este caso, la estructura de la carpeta CI será como:


Estructura de la carpeta:

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

En la carpeta de applications , creamos dos carpetas: front-end y back-end y copiamos todo el contenido predeterminado de las applications en estas dos carpetas.

También backend.php archivo index.php en la carpeta raíz como backend.php

Lo siguiente es configurar el CI para trabajar con estas dos instancias de aplicación.


Configuración de Codeigniter :

Abra los archivos index.php y backend.php y actualice application_folder confg:

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

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

Después de la configuración anterior, CI está listo para ejecutar dos aplicaciones bajo un sistema CI:

Solicitud en example.com/Codeigniter/index.php se abrirá la aplicación front-end

La solicitud en example.com/Codeigniter/backend.php abrirá back-end aplicación back-end