Codeigniter – Seeder

Imamo bazu podataka a projekt nam je u razvoju. Baza je naravno prazna jer nemamo stvarnih korisnika. Seeder nam tu služi kao mehanizam s kojim...
Imamo bazu podataka a projekt nam je u razvoju. Baza je naravno prazna jer nemamo stvarnih korisnika. Seeder nam tu služi kao mehanizam s kojim možemo popuniti bazu podataka sa "lažnim" podacima. Na ovaj način simuliramo realno korištenje projekta. Prije svega, kako pripremiti projekt? Vidi ovdje. Faker Faker je lib koji dolazi sa Codeigniter-om. Njegova svrha je da stvara lažne podatke (fake data). Za testiranje, idemo na http://localhost:8080/ i koristimo "Home" kontroler u "app/Controllers/Home.php" sa ovim preinakama: <?php namespace App\Controllers; use Faker\Factory; class Home extends BaseController { public function index() { $faker = Factory::create(); return $faker->name(); } } Kao što...

Codeigniter – migracija

"Migration" ili migracija je naziv za proces u kojem preko CLI naredbe učitavamo datoteku migracije i po učitanim postavkama, stvaramo tablice/stupce u bazi podataka. Radi...
"Migration" ili migracija je naziv za proces u kojem preko CLI naredbe učitavamo datoteku migracije i po učitanim postavkama, stvaramo tablice/stupce u bazi podataka. Radi se o tome da kada prebacimo projekt na drugo računalo, možemo stvoriti cijeli kostur baze podataka sa CLI naredbom. Pripremimo projekt Da sad tu ne pišem iznova o tome kako pripremiti projekt, sve imate ovdje. Da bi napravili datoteku migracije: php spark make:migration main S ovime dobivamo datoteku: ./app/Database/Migrations/2022-08-07-084359_Main.php Sa sadržajem: <?php namespace App\Database\Migrations; use CodeIgniter\Database\Migration; class Main extends Migration { public function up() { // } public function down() { // } } S...

REST API

Danas na jelovniku u "ioox-studio" kuhinji imamo REST API. Radi se o CodeIgniter4 aplikaciji koja je povezana sa mariadb (mysql) bazom podataka. Aplikacija je bez...
Danas na jelovniku u "ioox-studio" kuhinji imamo REST API. Radi se o CodeIgniter4 aplikaciji koja je povezana sa mariadb (mysql) bazom podataka. Aplikacija je bez PHP session-a i koristi JWT token za autentikaciju/autorizaciju. Osim ovoga gore koristimo Respect paketić za validaciju. Za testiranje sam koristio Resting ekstenziju koja je dostupna za Chrome/Firefox. Rute sa '/' na kraju nisu dozvoljene. Tako da npr. "https://api.ioox.studio/user/login/" nije ispravna ruta. Projekt smo postavili ovdje: https://api.ioox.studio Za login se spajamo na rutu: https://api.ioox.studio/user/login Koristimo header: "Content-Type":"application/json; charset=utf-8" Kao "raw" body šaljemo: { "email":"ddd@mail.com", "password":"12345678" } Ako je sve u redu, dobivamo odgovor: { "statusCode": 200,...

Codeigniter – registracija/prijava

Prije ovoga bacite oko na ovu objavu. Kod je na github. Cijeli postupak ide ovako: registracija korisnikakorisnik pošalje email i šifruako email ne postoji napravi...
Prije ovoga bacite oko na ovu objavu. Kod je na github. Cijeli postupak ide ovako: registracija korisnikakorisnik pošalje email i šifruako email ne postoji napravi novi korisnički računprijava korisnikakorisnik pošalje email i šifruako email postoji - prijavi korisnika Kod registracije unosimo email, šifru i user id (UUID) u bazu podataka. Kad se korisnik prijavi šaljemo mu (http-only) browser-only cookie. Znači cookie do kojeg se ne može doći sa javascriptom u internet pregledniku. U sesiji (session) dodajmo ključ ["user-logged-on" => 'f750204d-e73d-43e7-a5c2-cff967d233c6']. Na ponovnoj posjeti, provjeravamo (preko cookie-ja) "user-logged-on" iz sesije. Na odjavi, brišemo ključ sesije. U phpMyAdmin (ili preko terminala) pravimo...

Codeigniter – Model

Modelom nazivamo sve ono u PHP (ili bilo kojem jeziku) što radi sa bazompodataka. To su klase, validacija i wrapper funkcije/metode. Prije ovoga bacite oko...
Modelom nazivamo sve ono u PHP (ili bilo kojem jeziku) što radi sa bazompodataka. To su klase, validacija i wrapper funkcije/metode. Prije ovoga bacite oko na ovu objavu i ne bi bilo loše da prelistamo querybuilder dokumentaciju. U CodeIgniteru pristupne podatke unosimo u .env datoteku. #-------------------------------------------------------------------- # DATABASE #-------------------------------------------------------------------- database.default.hostname = localhost database.default.database = ci4_app database.default.username = root database.default.password = root database.default.DBDriver = MySQLi Datoteku modela pravimo sa: php spark make:model User --suffix Datoteke modela su u "/app/Models" direktoriju. Takva datoteka jepovezana s jednom tablicom. Tamo određujemo koji su stupci dozvoljeni: protected $allowedFields = [ "name", "email", ]; Tu imamo...

Codeigniter – View predlošci

Prije ovoga tutoriala potrebno je baciti oko na ovu objavu. U CI kontroler return string je ono što je prikazano vizualno u internet pregledniku. class...
Prije ovoga tutoriala potrebno je baciti oko na ovu objavu. U CI kontroler return string je ono što je prikazano vizualno u internet pregledniku. class HelloController extends BaseController { public function index() { return "ja sam tekst prikazan u pregledniku!"; } } View funkciju zovemo da učitamo template (html predložak) iz "app/View" direktorija. class HelloController extends BaseController { public function index() { return view("moja-view-datoteka.php"); } } Ili ako imamo pod-direktorij "app/View/header" class HelloController extends BaseController { public function index() { return view("header/moja-view-datoteka.php"); } } Kako prenosimo podatke iz kontrolera u predložak? Podatke prenosimo iz kontrolera u predložak preko asocijativnog array-a....

CodeIgniter – POST Zahtjev

Klasični post zahtjev iz frome Pod pretpostavkom da imamo već instaliran CodeIgniter.Pravimo kontroler: php spark make:controller Post --suffix Zatim pravimo HTML template ./app/Views/posts.php i dodajemo...
Klasični post zahtjev iz frome Pod pretpostavkom da imamo već instaliran CodeIgniter.Pravimo kontroler: php spark make:controller Post --suffix Zatim pravimo HTML template ./app/Views/posts.php i dodajemo sadržaj: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> </head> <body> <form action="<?= site_url('post') ?>" method="post"> <p>Name: <?php echo $name ?></p> <p>Email: <?php echo $email ?></p> <br> <p>Unesi podatke: </p> <input type="text" name="name" placeholder="Enter name"/> <br><br> <input type="email" name="email" placeholder="Enter email"/><br><br> <button type="submit">Submit</button> </form> </body> </html> Dodajemo putanju u "/app/Config/routes.php": $routes->get('post', 'PostController::index'); $routes->post('post', 'PostController::index'); U PostController::index unosimo: public function index() { $templateData = [ 'name' => null, 'email'...

Codeigniter

Kada dođemo do točke gdje se Wordpress jednostavno više ne može prilagoditi za naše potrebe, treba nam framework. To može biti CRUD za neku bazu...
Kada dođemo do točke gdje se Wordpress jednostavno više ne može prilagoditi za naše potrebe, treba nam framework. To može biti CRUD za neku bazu podataka, API ili slično. Što je framework? Framework je softver koji rješava probleme ponovnog pisanja koda i sigurnosti. Što znači, da se radi o jednom "abstraktnom sloju" iznad običnog PHP-a. Framework nam pruža set klasa i wrapper funkcija koje olakšavaju/ubrzavaju rad s projektom. Zašto CodeIgniter? A zašto ne? Ako Google-amo CodeIgniter dobijemo sponzorirane gluposti koje govore o tome da CodeIgniter nije siguran. Svatko pametan će nakon toga otići na: https://www.cvedetails.com/vulnerability-list/vendor_id-6918/Codeigniter.html pa sam provjeriti sigurnosne propuste....

🗣 You can translate this site using Chrome built-in translator.