Advanced Search
Search Results
618 total results found
Limit, count
Query Builder (Constructor de consultes) ofereix mètodes molt útils per gestionar el volum de dades que recuperem de la base de dades. Dos dels mètodes més fonamentals per a la paginació i l'estadística són limit() i els mètodes de comptatge (count). Mètode l...
Insert, update, delete
El Query Builder permet realitzar operacions de manipulació de dades de forma segura i intuïtiva. La gran gràcia d'utilitzar aquests mètodes en lloc d'escriure SQL "a pèl" és que CI4 s'encarrega d'escapar automàticament les dades, protegint-te contra injeccion...
Primers passos. Un paginador senzill.
Crear un paginador en CodeIgniter 4 (CI4) és extremadament senzill perquè el framework ja inclou una llibreria nativa que gestiona automàticament els càlculs de LIMIT, OFFSET i la generació dels enllaços. Controlador (News.php) Al controlador és on succeeix ...
Paginador customitzat
Podem onfigurar un paginador personalitzat a CodeIgniter 4 adaptant l'aparença dels enllaços de navegació (per exemple, per usar Bootstrap, Tailwind o un disseny propi) i així adaptar-ho a l'estètica de l'aplicació. Pas 1: la vista del paginador CodeIgniter ...
Paginació avançada
El sistema de paginació de CodeIgniter 4 (CI4) permet tenir un control total sobre l'experiència de l'usuari en navegar per grans volums de dades. Control de l'abast: setSurroundCount(n) Aquesta funció és vital per a la usabilitat (UX). Imagina que tenim 100...
HTML Table
La classe HTML Table (\CodeIgniter\View\Table) de CodeIgniter 4 és una eina molt potent per evitar el "codi espagueti" a les vistes. En lloc de barrejar bucles foreach de PHP amb etiquetes <table>, <tr> i <td>, aquesta classe genera l'HTML netament a partir de...
Paginador + bootstrap + cercador + ordenació
Aquest és un exemple complet i avançat. Integrarem CodeIgniter 4, Bootstrap 5, i la llibreria HTML Table, juntament amb un sistema de cercador i ordenació de columnes. El resultat serà una pàgina on veurem dues taules amb les mateixes dades: una feta "a mà" (...
Migration i seeder
Migration Les migracions actuen com un control de versions per a la base de dades. Aquest fitxer defineix l'estructura de la taula persones. Codi complet (app/Database/Migrations/YYYY-MM-DD-HHMMSS_AddPersones.php) PHP <?php namespace...
Entity persona
Creació de Entity Has de crear un nou fitxer a la ruta: app/Entities/Persona.php o executar php spark make:entity persona PHP <?php namespace App\Entities; use CodeIgniter\Entity\Entity; class Persona extends Entity { // 1...
Exemple. Llistar i crear
Muntarem l'arquitectura completa per tenir una llista de persones i un formulari funcional per crear noves persones. El flux de treball serà el següent: Rutes: Definir les URL. Controlador: Analitzar i polir el teu codi. Vista Llista: Mostrar...
Config files
Crear arxius de configuració personalitzats a CodeIgniter 4 és una pràctica excel·lent per centralitzar variables globals de l'aplicació (noms del lloc, claus d'API, correus d'administració, colors del tema, etc.) i evitar tenir valors "hardcoded" escampats pe...
Settings de CI4
La llibreria Settings de CodeIgniter 4 és una eina molt potent que serveix de pont entre els arxius de configuració estàtics (els que hem vist abans a app/Config) i la base de dades. El problema que resol: Normalment, si vols canviar el $siteName que està a C...
Session
Les Sessions a CodeIgniter 4 són el mecanisme que permet identificar un usuari a través de diferents pàgines. Com que el protocol web (HTTP) no té memòria, sense sessions el servidor no sabria que l'usuari que visita la pàgina "Perfil" és el mateix que fa un s...
Flashdata i Tempdata
Com funcionen Flashdata i Tempdata a CodeIgniter 4, totes dues formen part de la llibreria Session, però tenen cicles de vida diferents. Flashdata (Dades Flash) Què són? Són dades de sessió dissenyades per durar només una petició. Un cop l'usuari carrega la...
El problema
Sovint, ens quedem amb el INT AUTO_INCREMENT per comoditat, però preparar-los per a problemes del món real (seguretat, escalabilitat i distribució). L'AUTO_INCREMENT (o SERIAL en PostgreSQL) ha estat l'estàndard "per defecte" durant dècades. Però en l'arquitec...
UUID v4
L'enfocament "fàcil" per guardar l'UUID és com a VARCHAR(36). Tot i que ho enfocarem des d'aquest punt de vista fins al més òptim (Professional): guardar-lo com a BINARY(16). Això estalvia espai i millora lleugerament el rendiment de la memòria cau de la base ...
UUID v7
L'UUID v7 combina la unicitat distribuïda de l'UUID amb l'eficiència d'ordenació (localitat temporal) d'un ID autoincremental. Instal·lació de dependències Necessitem assegurar-nos que tenim una versió de ramsey/uuid que suporti la RFC 9562 (disponible des d...
Snowflake IDs
Aquesta opció és la preferida per arquitectures d'alt rendiment (High Frequency Trading, Xarxes Socials massives com Twitter/X, Instagram). El Snowflake ID (floc de neu) genera un enter de 64 bits (BIGINT) compost per: Un Timestamp (ms). Un ID de ...
ULID
ULID (Universally Unique Lexicographically Sortable Identifier) cobreix un punt dolç molt interessant: és tècnicament molt similar a l'UUID v7 (tots dos són de 128 bits i ordenables per temps), però la representació en text és molt més amigable. Mentre que un...
NanoID
NanoID és una opció fascinant que prové de l'ecosistema JavaScript. És l'equivalent modern i "hipster" dels UUIDs. El seu principal atractiu és que aconsegueix una seguretat de col·lisió similar a l'UUID v4 però amb una cadena molt més curta (normalment 21 car...