Historia powstania TypeScript
TypeScript, stworzony przez Microsoft w 2012 roku, zrodził się jako odpowiedź na rosnące wyzwania zw...
Symfony, jako jeden z najpopularniejszych frameworków PHP, oferuje wyjątkową elastyczność i modułowość, co sprawia, że jest idealnym narzędziem do tworzenia niestandardowych rozwiązań. Jeśli planujesz tworzyć aplikacje PHP na zamówienie, z pewnością przyda Ci się wiedza o tym, jak stworzyć własny vendor, aby móc wielokrotnie korzystać z opracowanych rozwiązań w różnych projektach.
Dziś przeprowadzimy Cię przez proces tworzenia własnego vendora w Symfony PHP oraz pokażemy, jak skonfigurować go do bezproblemowego użycia w swoich aplikacjach PHP.
Korzystanie z własnego vendora ma wiele zalet, zwłaszcza jeśli tworzymy aplikacje dedykowane dla klientów i zależy nam na wygodnym wykorzystywaniu powtarzalnych komponentów w kolejnych projektach. Oto kluczowe korzyści:
Krok 1: Zainstaluj Composer i Stwórz Nowe Repozytorium
Na początek musisz upewnić się, że masz zainstalowanego Composer, który zarządza zależnościami w projektach PHP. Następnie przygotuj nowe repozytorium dla swojego vendora – może być hostowane na GitHubie, GitLabie lub w Twojej własnej infrastrukturze.
mkdir MojeVendor
cd MojeVendor
git init
composer init
W ramach composer init
zostaniesz poproszony o podanie informacji, takich jak:
besmartand/moje-vendor
Ten proces wygeneruje plik composer.json
, który posłuży do zarządzania zależnościami oraz wersjonowaniem vendora.
Krok 2: Organizacja Struktury Plików
Własny vendor powinien mieć przemyślaną strukturę plików, aby łatwo integrował się z projektami Symfony. Poniżej przykładowa struktura:
MojeVendor/
├── src/
│ ├── Service/
│ └── DependencyInjection/
├── tests/
├── composer.json
└── README.md
W katalogu src
umieścisz pliki PHP odpowiedzialne za główną logikę vendora. Katalog tests
będzie przechowywał testy jednostkowe.
Krok 3: Tworzenie Klas i Usług w Vendorze
W pliku src/Service/MyCustomService.php
dodajmy podstawowy serwis, który będziesz mógł wykorzystać w swoich aplikacjach.
namespace BeSmartAnd\MojeVendor\Service;
class MyCustomService
{
public function doSomething()
{
// Przykładowa logika
return "Hello from MyCustomService!";
}
}
Krok 4: Konfiguracja Dependency Injection
Aby umożliwić Symfony automatyczne ładowanie Twojego vendora, dodajmy plik konfiguracji. Stwórz src/DependencyInjection/MojeVendorExtension.php
:
namespace BeSmartAnd\MojeVendor\DependencyInjection;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
class MojeVendorExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
// Ładowanie usług z pliku konfiguracyjnego services.yaml
}
}
Plik konfiguracyjny, np. services.yaml
, powinien znajdować się w katalogu src/Resources/config
i rejestrować Twoje usługi.
Krok 5: Rejestracja Vendora jako Bundla
Symfony wymaga zarejestrowania vendora jako Bundle
. Utwórz więc plik src/MojeVendorBundle.php
:
namespace BeSmartAnd\MojeVendor;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class MojeVendorBundle extends Bundle
{
}
Dodaj ten bundle do pliku composer.json
:
{
"autoload": {
"psr-4": {
"BeSmartAnd\\MojeVendor\\": "src/"
}
}
}
Po przygotowaniu vendora, czas na publikację. Jeśli korzystasz z platformy takiej jak GitHub, wystarczy wysłać zmiany do repozytorium:
git add .
git commit -m "Initial commit"
git push origin master
Aby dodać vendor do Composera, najlepiej zarejestrować go w Packagist, co umożliwi łatwe dodanie go do innych projektów za pomocą komendy composer require
.
W swoim projekcie Symfony możesz dodać vendor jako zależność:
composer require besmartand/moje-vendor
Vendor zostanie pobrany do katalogu vendor
, a jego serwisy będą automatycznie dostępne w aplikacji Symfony.
Po zainstalowaniu możesz od razu zacząć korzystać z usług vendora. W kontrolerze Symfony:
namespace App\Controller;
use BeSmartAnd\MojeVendor\Service\MyCustomService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class ExampleController extends AbstractController
{
private $myCustomService;
public function __construct(MyCustomService $myCustomService)
{
$this->myCustomService = $myCustomService;
}
public function index(): Response
{
return new Response($this->myCustomService->doSomething());
}
}
Symfony automatycznie zarejestruje i wstrzyknie Twoją usługę, co pozwoli na jej natychmiastowe użycie.
Regularne testowanie i utrzymywanie vendora zapewni jego stabilność w dłuższym czasie. Upewnij się, że masz zestaw testów jednostkowych, które uruchamiasz przed każdą aktualizacją. Możesz także wdrożyć automatyczne testowanie i integrację poprzez platformy CI/CD, aby zapewnić jakość swojego kodu.
Tworzenie własnych vendorów i modułów PHP to duża przewaga konkurencyjna, szczególnie jeśli zajmujesz się tworzeniem aplikacji dedykowanych i systemów na zamówienie. Własne komponenty pozwalają skrócić czas pracy, ułatwić utrzymanie, a także oferować klientom dodatkową wartość w postaci niestandardowych, zoptymalizowanych rozwiązań.
Tworzenie własnych vendorów i bibliotek dla Symfony to świetny sposób na ułatwienie pracy przy kolejnych projektach, a także na zbudowanie solidnej bazy kodu dla dedykowanych aplikacji PHP. Odpowiednio skonfigurowany vendor można łatwo przenosić pomiędzy projektami, co pozwala na skuteczne i szybkie dostarczanie wartości klientom.
Rozpocznij pracę nad swoim własnym vendorem, by podnieść jakość i efektywność pracy, co przyniesie korzyści zarówno Tobie, jak i Twoim klientom.