Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

W katalogu module projektu Laminas, tworzymy nowy katalog o nazwie naszego modułu np. HelloWorld. W utworzonym katalogu tworzymy trzy nowe: config, src, view. Układ katalogów i tworzonych plików w module HelloWorld zaprezentowano na rysunku 1.

 

 

Rys. 1. Układ katalogów w projekcie (tworzenie modułu laminas)

Rys. 1. Układ katalogów w projekcie (tworzenie modułu laminas)

 

W katalogu config tworzymy plik module.config.php, zawartość pliku znajduje się na listingu 1.

 

Listing 1. Zawartość pliku konfiguracyjnego modułu HelloWorld config/module.config.php

...
/**
 * Projekt Laminas
 */
namespace HelloWorld;

use Laminas\ServiceManager\Factory\InvokableFactory;
use Laminas\Router\Http\Segment;

return [

   'controllers' => [
      'factories' => [
         Controller\IndexController::class => InvokableFactory::class,
      ],
   ],
   'router' => [

      'routes' => [
         'hello-world' => [
            'type' => Segment::class,
            'options' => [
               'route' => '/hello-world[/:action]',
               'defaults' => [
                  'controller' => Controller\IndexController::class,
                  'action' => 'index',
               ],
            ],
         ],
      ],
   ],
   'view_manager' => [

      'template_path_stack' => [
         'hello-world' => __DIR__ . '/../view',
      ],
   ],
];
... 

 

Następnie tworzymy plik Module.php w katalogu src, zawartość pliku na listingu 2.

 

Listing 2. Zawartość pliku HelloWorld/src/Module.php

...
/**
 * Module HelloWorld Laminas kurs
 */
namespace HelloWorld;

use Laminas\ModuleManager\Feature\ConfigProviderInterface;

class Module implements ConfigProviderInterface{


   public function getConfig() {
      return include __DIR__ . '/../config/module.config.php';
   }

}
...

 

Otwieramy plik composer.json w katalogu głównym projektu i wyszukujemy sekcję autoload, następnie dodajemy fragment kodu widoczny na listingu 3. Po dokonaniu modyfikacji w pliku wprowadzamy w terminalu polecenie composer dump-autoload (rys. 2.).

 

Listing 3. Fragment pliku projekt-laminas/composer.json

...
"autoload": {
   "psr-4": {
      "Application\\": "module/Application/src/",
      "HelloWorld\\": "module/HelloWorld/src"
   }
},
... 

 

Rys. 2. Composer - generowanie plików autoload

Rys. 2. Composer - generowanie plików autoload

 

Następnie tworzymy katalog Controller, w którym należy utworzyć plik PHP o nazwie IndexController.php (Listing 4.).

 

Listing 4. Zawartość pliku HelloWorld/src/Controller/IndexController.php

...
/**
 * Projekt Laminas
 */

namespace HelloWorld\Controller;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;

class IndexController extends AbstractActionController {

   public function indexAction() {

      return new ViewModel();
   }

 

Teraz zajmiemy się wyświetleniem tekstu HTML, w katalogu view tworzymy katalog hello-world (nazwa naszego modułu), następnie w katalogu utworzonym tworzymy nowy o nazwie index (nazwa dotyczy kontrolera IndexController). Jeśli kontroler miałby nazwę PeterController to katalog musiałby mieć nazwę peter.

W katalog index tworzymy plik index.phtml, który jest przypisywane to akcji, czyli do metody indexAction() znajdującej się w klasie IndexController. Jeśli nazwa akcji byłaby np. peterAction(), plik musiałby mieć nazwę peter.phtml. W pliku index.phtml umieszczamy kod HTML (Listing 5.).

 

Listing 5. Zawartość pliku HelloWorld/view/hello-world/index/index.phtml

<h1>Hello World!</h1> 

 

Kiedy nasza praca nad modułem HelloWorld zostanie ukończona, dopisujemy go na końcu w pliku projekt-laminas/config/modules.config.php (Listing 6.).

 

Listing 6. Instalacja modułu HelloWorld, projekt-laminas/config/modules.config.php

/**
 * Projekt Laminas
 */
return [

   ...
   'Laminas\I18n',
   'Laminas\Router',
   'Laminas\Validator',
   'Application',
   'HelloWorld' // Dodaliśmy moduł HelloWorld Laminas
];

 

Pierwszy moduł Laminas został zainstalowany. Musimy jeszcze tylko sprawdzić, czy działa prawidłowo. W przeglądarce internetowej wprowadzamy localhost/projekt-laminas/public/hello-world. Jeśli nie występują żadne problemy to znaczy, że moduł został prawidłowo utworzony i zainstalowany (rys. 3.).

 

Rys. 3. Uruchomienie w przeglądarce Firefox modułu HelloWorld, Laminas kurs

Rys. 3. Uruchomienie w przeglądarce Firefox modułu HelloWorld, Laminas kurs 

 

Zaprezentowany moduł w artykule można znaleźć w pliku helloworld-laminas.zip – kodowanie plików tekstowych UTF-8, znaki końca linii Unix. Moduł HelloWorld został utworzony w środowisku programistycznym Eclipse PDT.

 

Wybrane strony:

  1. Domeny, Serwery, Wizytówki w dobrych cenach!
  2. Composer
  3. Dokumentacja Laminas
  4. Eclipse

 Wybrane książki:

  1. Ramez Elmasri, Shamkant B. Navathe: Wprowadzenie do systemów baz danych. Wydanie VII, Wydawnictwo Helion, 2019.
  2. Mizanur Rahman: PHP 7. Algorytmy i struktury danych, Wydawnictwo Helion, 2018.
  3. Matt Zandstra: PHP. Obiekty, wzorce, narzędzia. Wydanie V, Wydawnictwo Helion, 2017.
  4. Kyle Banker, Peter Bakkum, Shaun Verch, Doug Garrett, Tim Hawkins: MongoDB w akcji, Wydawnictwo Helion, 2016.
  5. Thomas Wilhelm: Profesjonalne testy penetracyjne. Zbuduj własne środowisko do testów, Wydawnictwo Helion, 2014.
  6. Bill Karwin: Antywzorce języka SQL. Jak unikać pułapek podczas programowania baz danych, Wydawnictwo Helion, 2012.

 

Książki Helion