5 Pimcore rozšíření, která urychlí váš vývoj

I když je Pimcore, i ve své Community Edici, většinou prakticky plnohodnotný systém PIM už v základní instalaci, často je potřeba jeho přizpůsobení, případně rozšíření. Implementace těchto úprav může být nákladná a časově náročná, ale v mnoha případech lze tento proces výrazně urychlit použitím existujících rozšíření Pimcore.
V tomto článku najdete pět rozšíření Pimcore, která řeší běžné počáteční požadavky pro urychlení tvorby vašeho projektu a jeho uvedení na trh. Vynechám nejpopulárnější rozšíření, jako jsou Datahub nebo Process Manager, která jsou pravděpodobně známá každému, kdo někdy použil Pimcore. Zahrnu však některá rozšíření, která jsou postavena na Datahubu.
Než začneme, rád bych zdůraznil, že výběr je subjektivní. Nemělo by se na něj pohlížet jako na seznam nejlepších rozšíření Pimcore, ani byste neměli očekávat, že některé z níže uvedených rozšíření bude užitečné pro váš projekt. Pořadí, ve kterém jsou rozšíření prezentována, není významné.

1. Data Importer

Naprostým základem každeho projektu jsou data a smutnou realitou 21. století je, že podniky stále považují tabulky za svatý grál výměny dat. Kvůli tomu se téměř každý projekt v Pimcore musí vypořádat s importem souborů CSV a XLSX. Naštěstí může Pimcore Data Importer, který značně zjednoduší implementaci datových importů. Někdy stačí jen pár kliknutí v rozhraní.

Pohled na Data Importer v Pimcore

Data Importer je všestranný. Kromě CSV a XLSX souborů může pracovat také s XML a JSON soubory. Zdroj souboru může být Pimcore asset, SFTP umístění, HTTP(S) lokace nebo POST endpoint.

Data ze zdrojového souboru jsou mapována na datový objekt v Pimcore prostřednictvím přehledného rozhraní. Mapování nemusí být v poměru 1:1 – lze mapovat více zdrojových polí na jednu vlastnost objektu v Pimcore nebo klíč v klasifikačním úložišti. Samozřejmě je možné vybrat pouze podmnožinu dat ze zdrojového souboru. Zdrojová data mohou projít „transformačním procesem,“ což je série operací, jako například odstranění počátečních a koncových mezer, dekódování HTML entit, převod hodnoty na pole atd. K dispozici je více než 20 operátorů. Díky třem různým strategiím načítání dokáže Data Importer najít existující objekty a aktualizovat je místo toho, aby vytvářel nové.

Data Importer v akci

Import lze spustit ručně z administrátorského rozhraní, nakonfigurovat jako cron job nebo spustit pomocí příkazu CLI. V případě POST endpointů lze import spustit HTTP požadavkem. Samotný importní proces probíhá ve dvou fázích:

  1. Příprava: Zdrojový soubor se rozdělí na jednotlivé datové položky, které se zařadí do fronty.
  2. Zpracování: Každá zařazená položka se zpracuje – najde se existující objekt, zdrojová data se upraví a objekt se nakonec uloží. Položky lze zpracovávat sekvenčně, pokud jsou na sobě závislé, nebo paralelně, což umožňuje zrychlení procesu.

Samozřejmě, toto rozšíření není univerzálním řešením pro všechny importy. Například dokáže analyzovat více listů v XLSX souboru, ale ne všechny obchodní požadavky lze pokrýt konfigurací Data Importeru. Pokud je výkon klíčovým faktorem, může být lepší vytvořit vlastní optimalizovaný importér.

2. Jednotné přihlášení (Single Sign-on)

Obvykle je Pimcore jen jedním z dílků v IT ekosystému organizací a možnost přihlásit se do Pimcore pomocí externího poskytovatele identity je běžným požadavkem. Přesně to umožňuje rozšíření Single Sign-on.

Pimcore Single Sign-on

Toto rozšíření přidává do Pimcore poskytovatele autentizace OpenID a LDAP. OpenID může využívat Microsoft Azure Active Directory, Google, Auth0 a Okta jako poskytovatele identity, což jsou jedny z nejznámějších služeb. LDAP umožňuje integraci s jakoukoli službou podporující protokol LDAP, přičemž v obchodním kontextu je nejběžnější Microsoft Active Directory. Tyto služby dominují v podnikových prostředích, takže toto rozšíření by mělo být dostačující pro implementaci SSO ve většině případů. Vývojář slibuje, že v blízké budoucnosti přidá podporu pro SAML a OAuth2.

Po úspěšné autentizaci u externího poskytovatele identity rozšíření vytvoří odpovídajícího uživatele v Pimcore. Rozšíření vyvolává událost, kterou lze využít k úpravě objektu uživatele, například ke změně jeho cesty. Je možné přiřadit uživatelům výchozí roli.

Ještě jedna věc: pokud potřebujete pouze autentizaci pomocí LDAP, můžete zvážit Pimcore LDAP Bundle od stejného dodavatele, který je zdarma.

3. Přihlášení uživatelé (Members)

Pokud má váš projekt v Pimcore front-endovou část, například interní katalog produktů pro zaměstnance, pravděpodobně budete potřebovat prostředky k autorizaci přístupu. Pro většinu typických scénářů vám může pomoci balíček Members, který umožňuje snadnou implementaci.

Pohled na Pimcore Members

Toto rozšíření poskytuje kompletní řešení pro ukládání a správu uživatelských přihlašovacích údajů, včetně:

  • Registrace členů na front-endu.
  • Správy členů na back-endu.
  • Samoobslužných funkcí pro členy, jako je úprava profilu, změna hesla, resetování hesla, odstranění účtu atd.
  • Autorizace přístupu k objektům, dokumentům a assetům.
  • Podpory uživatelských rolí a skupin.

Existují tři režimy registrace:

  1. Uživatel musí potvrdit svou e-mailovou adresu kliknutím na odkaz v potvrzovacím e-mailu.
  2. Registraci musí potvrdit administrátor.
  3. Okamžité potvrzení bez dalších kroků.

Rozšíření se stará o odesílání potřebných e-mailů, které lze samozřejmě přizpůsobit.

Všechny formuláře používané rozšířením lze upravit. Například můžete přidat další pole do registračního formuláře. Pimcore třídy pro uživatele a skupiny jsou také vysoce přizpůsobitelné – mohou mít libovolný název a klíč objektu lze konfigurovat. Další úpravy lze provést pomocí událostí – k dispozici je více než 30 událostí, ke kterým se můžete přihlásit.

Integrace s Pimcore Customer Data Framework

Rozšíření Members lze použít společně s Pimcore Customer Data Framework. Aby to ale fungovalo, musí třída uživatele CMF rozšířit třídu AbstractCustomerUser z Members.

Rozšíření také poskytuje jednoduchý způsob implementace jednotného přihlášení (SSO) pomocí poskytovatelů OAuth2, jako jsou Auth0, Google, Microsoft a mnoho dalších. Toto řešení je postaveno na KnpUOAuth2ClientBundle, který podporuje téměř 60 poskytovatelů OAuth2.

4. Perspective Editor

Vytváření a úprava perspektiv v Pimcore je jednoduchý úkol, který zvládne i juniorní vývojář. Někdy však může být nepraktické, pokud je potřeba perspektivy často upravovat a každou změnu musí provádět přávě jen vývojář. V takovém případě může být užitečné rozšíření Perspective Editor. Poskytuje editor pro správu perspektiv a pohledů přímo v uživatelském rozhraní Pimcore.

Pohled na Perspective Editor v Pimcore

Perspective Editor zcela neodstraňuje nutnost psaní kódu. Přizpůsobení kontextového menu a menu nástrojů vyžaduje přidání JS kódu, které se k nim vážou.

Přístup k tomuto rozšíření by měl být udělován s opatrností, protože umožňuje úpravu podmínek WHERE a HAVING v SQL dotazech používaných v pohledech. Pokud je použito nesprávně, může představovat významnou bezpečnostní zranitelnost!

Důležité aspekty nasazení Perspective Editoru

Vzhledem k tomu, že toto rozšíření pracuje se soubory YAML uvnitř adresáře var/config v Pimcore, je třeba vzít v úvahu dvě věci:

  1. Pokud je Pimcore nasazen v prostředí s vyváženým zatížením a replikací, například v Kubernetes pods, adresář var/config/perspectives musí být sdílen mezi replikami. Pokud se tak nestane, změny provedené v editoru budou viditelné pouze někdy.
  2. Vývojáři musí zajistit, aby nasazení nepřepsalo změny provedené v uživatelském rozhraní.
  3.  

5. Generátor číselné sekvence (Number Sequence Generator)

Rozšíření Number Sequence Generator má jediný účel: generovat kontinuální číselné sekvence. Zní to jednoduše, ale je to velmi užitečné. Většina projektů v Pimcore, se kterými jsem pracoval, potřebovala sekvence pro číslování objednávek, produktů atd.

Generátor umožňuje zvolit počáteční číslo. Například můžete začít od 100000. Sekvenci lze nastavit ručně, například pokud potřebujete resetovat všechny identifikátory produktů. Samozřejmě rozšíření umožňuje používat mnoho nezávislých sekvencí, například jednu pro produkty a druhou pro čísla produktů. Jediné, co chybí, je možnost zvolit hodnotu přírůstku, což by mohlo být užitečné, pokud potřebujete například identifikátory, které jsou násobky 100.

Rozšíření také poskytuje generátor náhodných kódů, který lze použít například pro generování slevových kupónů. Můžete určit rozsah znaků (numerický nebo alfanumerický), sadu znaků, abyste eliminovali podobně vypadající znaky jako „0“ a „O“, a požadovanou délku kódu. Kódy jsou zaručeně unikátní.

Závěrem

Rozšíření uvedená výše vám mohou ušetřit velké množství času při vývoji vašich projektů v Pimcore. Čas jsou peníze a čas vývojářů je drahý, takže použití existujících rozšíření je často levnější než vývoj něčeho od nuly. Doporučuji se na ně před začátkem vývoje alespoň podívat a zvážit jejich použití, jsou zdarma a věřím, že jsou natolik univerzálně funkční, že je využijete prakticky vždy.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *