Skip to main content

Descarrega e instal·lació de CodeIgniter

Instal·lació Codeigniter

Cada cop que vulguem iniciar un projecte amb CodeIgniter haurem d’instal·lar una instància de CI4 i per fer-ho emprarem el gestor de paquets composer

composer create-project codeigniter4/appstarter elmeuprojecte --no-dev

El paràmetre no-dev desactiva les proves unitàries que utilitzaríem en cas de desenvolupar una llibreria o alguna ampliació de CodeIgniter, en cas de requerir dur a terme proves unitàries (php-unit) no s’hauria d’incloure el paràmetre no-dev en la instrucció anterior.

La instrucció ens crearà una carpeta anomenada elmeuprojecte que contindrà un arxiu composer.json amb els requisits d’un projecte que treballi amb CI4 i una estructura bàsica de carpetes, molts arxius no hauran estat descarregats i perquè aquests arxius es descarreguin caldrà executar composer install.

cd elmeuprojecte
composer install

En qualsevol moment podem actualitzar el Framework o les llibreries emprant l'eina composer

composer update

La jerarquia de carpetes que tenen els projectes és la següent:

image.png

  • app: Contindrà els arxius que desenvoluparem en el nostre projecte
    • Config: Conté els arxius de configuració
    • Controllers: Contindrà els controladors
    • Database: Contindrà les migracions i els seeders de la base de dades
    • Filters: Contindrà els filtres
    • Helpers: Contindrà els helpers
    • Language: Contindrà una carpeta per cada idioma per així poder fer la internacionalització
    • Libraries: Contindrà les llibreries que ens desenvolupem
    • Models: Contindrà els models de dades
    • ThirdParty: Contindrà llibreries de tercers que requereixin instal·lació manual, cada cop menys utilitzada
    • Views: Contindrà les vistes
  • public: Carpeta exposada pel servidor apache
  • tests: Carpeta que contindrà els arxius de test
  • vendor: Conté les llibreries d’altri del projecte
  • writable: Aquesta carpeta haurà de tenir permisos d’escriptura, és on s’emmagatzema (cache, sessions, debug info, uploads, logs…)

Consola CodeIgniter

CodeIgniter com molts frameworks tenen les seves pròpies instruccions de consola que ens permeten crear codi de forma automàtica, configurar, revisar propietats, executar tasques de manteniment, entre altres. En el cas de CI4 la instrucció és SPARK que és un arxiu que s’instal·la per defecte en la carpeta del nostre projecte.

L'instrucció spark en entorn windows s'haurà d'executar com a php spark pero en Linux es pot executar directament la instrucció des de consola spark

Comandes spark

php spark

Mostra les diferents instruccions spark que tenim disponibles

Ajuda Spark

php spark help COMANDA

Mostra ajuda de la comanda concreta que li passa com a paràmetre

Seeding. Inicialitzar BBDD. Sembrar BBDD

php spark db:seed NOM_SEEDER

Inicia el procés d’inserció de dades de prova a la base de dades segons el generador que es passi per paràmetre

Iniciar webserver debug

php spark serve

Inicia el servidor de debugging al port 8080

Iniciar webserver debug al port 80

php spark serve --port 80

Inicia el servidor de debugging al port especificat per paràmetre, en aquest cas el 80

Migracions. Executar

php spark migrate
php spark migrate --all

Aplica totes les migracions, si cal, crea una taula de migracions a la base de dadeas on s’emmagatzemarà l’estat de cada migració. El paràmetre --all permet executar migracions que es trobin dins de llibreries a més d’aquelles que es trobin en el nostre projecte (App/Database/Migrations)

Si volem executar les migracions des d’un controller podríem fer-ho emprant els services de CodeIgniter. Per exemple per executar migracions des d’un controller utilitzaríem un codi com el següent:

$migrate = \Config\Services::migrations();
try {
    $migrate->latest();
} catch (\Throwable $e) {
    // Do something with the error here...
}

Migracions. Desfer

php spark migrate:rollback

Reverteix el darrer bloc de migracions executat

Migracions. Mostrar estat

php spark migrate:status

Mostrar les migracions aplicades i en cas que alguna no ho estigui, mostra la data d’execució en blanc

Rutes. Visualitzar

php spark routes
php spark routes -h

Mostra totes les rutes definides per l’usuari, així mateix també mostra els filtres que afecten cadascuna d’elles. L’execució amb el paràmetre -h ens mostrarà les rutes ordenades i agrupades segons el controller

Namespaces. Mostra els namespaces

php spark namespaces

Mostra els namespaces definits dins el projecte

Arxiu .ENV

Per defecte CodeIgniter inicia en mode producció per així activar la seguretat de certs apartats del codi de la nostra aplicació. Per configurar CodeIgniter emprarem els arxius que es troben dins la carpeta App/Config, però aquests arxius estan destinats a la configuració durant la producció, durant el procés de desenvolupament emprarem un arxiu anomenat env que es troba a l’arrel del projecte.

image.png

Perquè aquest arxiu sigui operatiu caldrà canviar-li el nom a .env

# REM Windows/DOS mode
# REM Rename file env to .env
ren env .env
# LINUX mode
# Rename file env to .env
mv env .env

Aquest arxiu conté els mateixos paràmetres que els que es troben distribuïts dins la carpeta App/Config, però seran d’execució prioritària respecte als que allí s’hi troben. Això ens permet sobreescriure elements de la configuració amb un sol arxiu, molt útil per entorns de desenvolupament.

Primer caldrà indicar-li a CodeIgniter4 que estem en procés de desenvolupament, per fer-ho editarem l’arxiu .env i n’establirem la variable CI_ENVIRONMENT

#----------------------------------------------------
# ENVIRONMENT
#----------------------------------------------------
CI_ENVIRONMENT = development

Aquesta línia de l’arxiu inicialment es troba comentada i establerta a production, caldrà treure l’indicador de comentari i canviar-la a development.

Seguidament, si volem aprofitar que CodeIgniter disposa d’una Debug Toolbar que ens permetrà debugar les nostres aplicacions més fàcilment haurem d’establir un altre paràmetre. Quan un paràmetre en l'arxiu .env comença amb un prefix vol dir que aquell paràmetre també es troba en un arxiu de la carpeta config amb aquell nom.

Per exemple, app.baseURL és el paràmetre baseURL que es troba a l'arxiu App\Config\App.php

#---------------------------------------------------
# APP
#---------------------------------------------------
app.baseURL = 'http://localhost'

baseURL ha de coincidir amb l'URL del servidor de debug perquè així CI4 ens hi incorpori la toolbar, això vol dir que si el port és diferent del 80 també caldrà indicar-lo en baseURL com a http://localhost:8080 per exemple