Osumi Framework
es en eu v9.8.0 GitHub

Osagaiak

Osumi Framework-eko osagaiak txantiloi bat errendatzen duten kode zati txiki eta berrerabilgarriak dira. Osagai bat honako hauek osatzen dute:

Osagai instantzia bat sortzen da, propietateak esleitzen zaizkio eta gero osagaia errendatzen da, normalean render() bidez edo objektua kate batera bihurtuz.


Oinarrizko osagaien egitura

Osagai Klasea

Osagai klase fitxategi baten adibidea (LostPasswordComponent.php):

<?php declare(strict_types=1);

namespace Osumi\OsumiFramework\App\Component\Email\LostPassword;

use Osumi\OsumiFramework\Core\OComponent;

class LostPasswordComponent extends OComponent {
  /**
  * Propietate publikoak automatikoki agertzen dira txantiloian.
  */
  public ?string $token = null;
}

Txantiloi Fitxategia

Txantiloi baten adibidea (LostPasswordTemplate.php):

<div>
  Token: {{ token }}
</div>


Ezaugarri Aurreratuak

Eduki Mota Goiburu Automatikoak

Osagai bat URL baten ekintza nagusi gisa erabiltzen denean, esparruak automatikoki bidaltzen du dagokion Content-Type goiburua txantiloiaren fitxategi luzapenaren arabera:

Osagaien Habiaratzea

Osagaiak kateatu edo habiaratu daitezke. Osagai handiago batek osagai txikiagoak sartu eta errendatu ditzake bere logika edo txantiloian berrerabilgarritasuna sustatzeko.

Seme osagai klase fitxategi baten adibidea (ChildComponent.php):

<?php declare(strict_types=1);

namespace Osumi\OsumiFramework\App\Component\Child;

use Osumi\OsumiFramework\Core\OComponent;

class ChildComponent extends OComponent {
  public ?string $name = null;
}

Txantiloi Fitxategia

Txantiloi baten adibidea (ChildTemplate.php):

<div>
  Izena: {{ name }}
</div>

Seme osagai bat erabiliz aita osagai klase fitxategi baten adibidea (FatherComponent.php):

<?php declare(strict_types=1);

namespace Osumi\OsumiFramework\App\Component\Father;

use Osumi\OsumiFramework\Core\OComponent;
use Osumi\OsumiFramework\App\Component\Child\ChildComponent;

class FatherComponent extends OComponent {
  public ?ChildComponent $child = null;

  public function run(): void {
    $this->child = new ChildComponent();
    $this->child->name = 'Semearen Izena';
  }
}

Txantiloi Fitxategia

Txantiloi baten adibidea (FatherTemplate.php):

<div>
  Semea: {{ child }}
</div>

Emaitza hau izango litzateke:

Semea: Izena: Semearen Izena

Txantiloiaren Sintaxia eta Sarbidea

Txantiloiek osagaiaren propietate publikoetara modu ezberdinean sartzen dira fitxategiaren luzapenaren arabera:

  1. PHP Txantiloiak (.php):
  1. Txantiloi Estatikoak/Egituratuak (.html, .json, .xml):

run() metodoa (Hautazkoa)

Osagai batek run() metodo bat defini dezake aukeran. Baldin badago, automatikoki exekutatzen da render() prozesuaren hasieran, txantiloia prozesatu aurretik datuak prestatzeko.

Osagaia ekintza gisa erabiltzen denean (ibilbide aktibatu baten ondorioz errendatutako osagaia), run() funtzioak eskaeren datuak jaso ditzake:

ORequest klaseak metodoak ditu pasatako datuak lortzeko, hala nola, formularioen balioak edo URL bidez pasatako parametroak:

Ibilbide batek iragazki bat definituta badu, ORequest klaseak haien exekuzioaren emaitza atzitzeko moduak ere eskaintzen ditu:

  public function run(ORequest $req): void {
    $login_filter = $req->getFilter('login'); // LoginFilter fitxategitik itzulitako emaitza atzituko luke
    $filters = $req->getFilters(); // Aplikatutako iragazki bakoitzaren itzulitako emaitza asoziazio-array gisa atzituko luke ['login' => [...]]
  }

Adibidea:

class BooksComponent extends OComponent {
  public array $books = [];

  public function run(): void {
    $this->books = ['A Liburua', 'B Liburua'];
  }
}

class GetBookComponent extends OComponent {
  public ?Book $book = null;

  public function run(ORequest $req): void {
    $id_book = $req->getParamInt('id');
    $this->book = Book::findOne(['id' => $id_book]);
  }
}

Aukera globaletara sartzea

Osagaiek metodoak dituzte aplikazioaren konfigurazioa, erregistroak edo saio-datuak bezalako aukera globaletara sartzeko:


Izendapen-konbentzioak

Koherentzia mantentzeko, jarraitu izendapen-eredu hauek:

Fitxategi mota Konbentzioa Adibidea
Osagai-klasea XxxComponent.php UserComponent.php
Txantiloia XxxTemplate.<ext> UserTemplate.json

Osagaiak Errendatzea

Errendatze-fluxu tipiko batek osagaia instantziatzea, datuak esleitzea eta emaitza irteeratzea dakar.

$cmp = new BooksComponent();

// Kate bihurtu dezakezu run() eta render() abiarazteko
echo strval($cmp);

Txantiloi-hodiak

Osumi Framework-eko txantiloiek Angular erako hodiak onartzen dituzte, balioak txantiloiaren barruan zuzenean eraldatzeko aukera emanez.

Sintaxia

{{ value | pipeName }} {{ value | pipeName:param }} {{ value | pipeName:param1:param2 }}

Helburua

Hodiek formatua ahalbidetzen dute:

Hodiak barneko OPipeFunctions klaseak prozesatzen ditu.


Eskuragarri dauden hodiak

Jarraian, OPipeFunctions.php-ko funtzioetatik eratorriak diren hodi integratu guztiak eta haien portaera ageri dira.


1. date

Data-kate bat formatu berri batean formateatzen du (Y-m-d H:i:s formatua).

Sintaxia

{{ user.created_at | date }} {{ user.created_at | date:"d/m/Y" }} {{ user.created_at | date:"d-m-Y H:i" }}

Portaera

Formatu lehenetsia

d/m/Y H:i:s


2. number

Zenbakiak PHP-ren number_format() erabiliz formateatzen ditu.

Sintaxia

{{ prezioa | number }} {{ prezioa | number:2 }} {{ prezioa | number:2:".":"," }}

Portaera

Adibideak:

1234.5 → 1234.50 1234.5 → 1,234.50 (milakoen bereizlea "," bada)


3. string

urlencode() aplikatzen dio kate bati.

Sintaxia

{{ erabiltzaile.izena | string }}

Portaera

Adibidea:

"John Doe" → "John+Doe"


4. bool

Boolearrak bihurtzen ditu:

true
false
null

Sintaxia

{{ erabiltzailea.isAdmin | bool }}


Nola jokatzen duten hodiak JSON txantiloietan

.json bezalako txantiloiak kate gisa errendatzen direnez, hodiek automatikoki ziurtatzen dute:

Honek JSON irteera baliozkoa bermatzen du.


Adibideak

{
  "id": {{ user.id | number }},
  "name": {{ user.name | string }},
  "created": {{ user.created_at | date:"d/m/Y" }},
  "active": {{ user.active | bool }}
}

Hodien laburpena

Hodia Helburua Oharrak
date Data balioak formateatu Maskara pertsonalizatuak onartzen ditu
number Zenbakizko balioak formateatu Hamartarrak eta bereizleak onartzen ditu
string URL kodeketa kateak Komatxoak gehitzen ditu
bool Normalizatu irteera boolearra true / false / null

Ereduari lotutako osagaiak

Osagaiek ereduaren ikuspegiak adierazten dituztenean, motatutako propietateak erabil ditzakezu zure eredu klaseekin.

namespace Osumi\OsumiFramework\App\Component\Model\User;

use Osumi\OsumiFramework\Core\OComponent;
use Osumi\OsumiFramework\App\Model\User;

class UserComponent extends OComponent {
  public ?User $user = null;
}


Praktika onak