Jaké problémy může přinést přechod na PHP 8.4?

Jaké problémy může přinést přechod na PHP 8.4?

PHP 8.4, které bylo plánováno na listopad 2024, přináší nejen nové funkce, ale i deprekované prvky, které mohou způsobit problémy při migraci. Pokud plánujete přechod na tuto novou verzi PHP, měli byste být připraveni na několik změn, které mohou ovlivnit stávající kód.

Deprecation: Implicitně označené parametry jako nullable

Jednou z nejvýraznějších změn, které přináší PHP 8.4, je deprekování implicitního označení parametrů jako nullable. V předchozích verzích PHP bylo běžné označit parametr jako nullable jednoduše tím, že mu přiřadíte hodnotu null v deklaraci funkce, například:

function test(string $test = null) {}

Tato syntaxe byla povolena až do verze PHP 8.3, ale od verze 8.4 se stává deprekovanou. Pokud tedy budete i nadále používat tuto syntaxi, PHP na to upozorní při spuštění kódu.

Příklad:

function test(string $test = null) {}

test('PHP'); // Povoleno
test(null); // Povoleno

Tento způsob deklarace parametrů však bude v PHP 8.4 již považován za zastaralý. Pro opravu je nutné použít explicitní nullable typ, který byl zaveden ve verzi PHP 7.1. Opravená syntaxe by měla vypadat takto:

function test(?string $test = null) {}

Tento nový zápis jasně specifikuje, že parametr $test může být buď typu string, nebo null.

Jak zjistit deprekované funkce?

Detekce této deprekované funkce je snadná, pokud používáte nástroje, jako je PHP’s vestavěný linter. Stačí mít nainstalovanou verzi PHP 8.4 a spustit linter na vašem kódu. Linter vám pomůže odhalit všechny části kódu, které používají zastaralou syntaxi, a doporučí opravu. To vám umožní připravit váš kód na přechod na PHP 8.4 bez větších problémů.

Doporučení pro přechod na PHP 8.4

Pokud chcete zajistit, aby přechod na PHP 8.4 probíhal hladce, doporučujeme následující kroky:

  1. Aktualizujte svůj kód: Ujistěte se, že všechny funkce, které používají implicitně nullable parametry, byly upraveny na explicitní nullable typy.
  2. Testování: Proveďte důkladné testování, abyste zajistili, že všechny změny byly správně implementovány a že váš kód stále funguje tak, jak má.
  3. Využijte linter: Použijte PHP linter pro detekci dalších deprekovaných funkcí, které mohou být v kódu přítomny.
  4. Připravte se na další změny: Sledujte novinky o PHP 8.4, abyste byli připraveni na případné změny nebo nové funkce, které mohou ovlivnit váš kód.

Přechod na PHP 8.4 může být pro některé vývojáře náročný, ale pokud se na něj připravíte a provedete potřebné změny včas, migrace proběhne bez větších problémů.

Proč nepoužívat Google Analytics a jak vytvořit vlastní nástroj pro monitorování přístupů na webu

Proč nepoužívat Google Analytics a jak vytvořit vlastní nástroj pro monitorování přístupů na webu

V dnešní digitální době je monitorování návštěvnosti webových stránek neodmyslitelnou součástí správy a rozvoje online projektů. Mezi nejznámější nástroje pro analýzu návštěvnosti patří Google Analytics, který je široce používaný díky své jednoduchosti a robustní sadě funkcí. Nicméně, jak se ukazuje, používat Google Analytics může mít některé nežádoucí vedlejší účinky, které se týkají ochrany soukromí uživatelů a bezpečnosti dat. Tento článek si klade za cíl vysvětlit, proč se vyplatí zvážit alternativy k Google Analytics, včetně vytváření vlastního monitorovacího systému, který vám poskytne větší kontrolu nad vašimi daty a zajištění soukromí vašich návštěvníků.

Google Analytics a jeho nevýhody

Google Analytics je jedním z nejpoužívanějších nástrojů pro sledování a analýzu návštěvnosti webových stránek. Umožňuje shromažďovat data o chování uživatelů, jejich interakcích na stránkách a výkonu různých marketingových kampaní. I když se na první pohled jedná o silný nástroj, používání Google Analytics s sebou přináší několik závažných problémů, které byste měli zvážit.

1. Cookies třetích stran

Google Analytics využívá cookies třetích stran k shromažďování dat o chování uživatelů. Cookies třetích stran jsou soubory, které jsou umístěny na zařízení uživatele jiným subjektem než webovou stránkou, kterou si prohlíží. Tento přístup je problematický z hlediska ochrany soukromí, protože Google a další inzerenti mohou tyto cookies používat k vytvoření profilů uživatelů a sledování jejich aktivit napříč různými weby.

Pro evropské uživatele znamená používání Google Analytics v souvislosti s GDPR (General Data Protection Regulation) a jinými podobnými regulacemi nutnost získat souhlas uživatele s použitím cookies třetích stran. Tento souhlas se často získává prostřednictvím vyskakovacího okna (cookie banner), což může mít negativní dopad na uživatelský zážitek a zvyšuje složitost správy soukromí na vašem webu.

2. Sledování uživatelů a ztráta kontroly nad daty

Další významnou nevýhodou používání Google Analytics je to, že odesíláte data o návštěvnosti a aktivitě vašich uživatelů na servery Google. I když Google tvrdí, že zachovává data anonymně, vždy existuje možnost, že tato data mohou být použita pro jiné účely, než jaké jste původně zamýšleli. To může zahrnovat shromažďování informací pro reklamu a profilování, což může ohrozit soukromí vašich uživatelů.

Pokud používáte Google Analytics, máte malou kontrolu nad tím, jak jsou vaše data využívána. I když máte přístup k analytickým údajům o návštěvnosti, stále se spoléháte na Google jako zprostředkovatele těchto informací. To je obzvláště problematické, pokud se snažíte udržet kontrolu nad soukromím svých návštěvníků a jejich osobními údaji.

3. Závislost na třetí straně

Pokud používáte Google Analytics, stáváte se závislí na třetí straně, která vám poskytuje analytické nástroje. Google může kdykoliv změnit podmínky služby, zrušit některé funkce nebo dokonce zrušit účet bez předchozího varování. Tato závislost na externích poskytovatelích může být riziková, zejména pokud máte kritické potřeby ohledně ochrany soukromí a bezpečnosti dat.

Proč je lepší napsat vlastní nástroj pro monitorování přístupů

Vzhledem k těmto nevýhodám může být pro vás jako správce webu nebo vývojáře přínosnější napsat si vlastní nástroj na monitorování přístupů a sledování aktivit na vašem webu, než se spoléhat na nástroje třetích stran, jako je Google Analytics. Vytvoření vlastního systému vám poskytuje větší kontrolu nad tím, jaká data shromažďujete, jak jsou používána a kdo má k těmto datům přístup.

1. Kontrola nad daty a soukromím

Jedním z hlavních důvodů, proč se rozhodnout pro vlastní monitorovací nástroj, je plná kontrola nad tím, jaká data shromažďujete a jak je zpracováváte. Místo toho, abyste posílali data třetím stranám, jako je Google, můžete veškeré informace uchovávat a analyzovat na svých vlastních serverech. Tímto způsobem si můžete být jisti, že data vašich návštěvníků nebudou zneužita a že máte plnou kontrolu nad tím, jak jsou zpracovávána a uchovávána.

2. Ochrana soukromí uživatelů

Pokud vytvoříte vlastní monitorovací systém, můžete se zaměřit na ochranu soukromí vašich uživatelů. Můžete zajistit, že nebudou shromažďována citlivá data, že uživatelé budou mít možnost opt-out z sledování, a že nebudete sledovat jejich chování napříč různými weby. To je zásadní pro dodržování předpisů o ochraně soukromí, jako je GDPR, a pro udržení důvěry vašich uživatelů.

3. Flexibilita a přizpůsobení

Vytvoření vlastního systému na monitorování přístupů vám umožní plně přizpůsobit nástroj vašim konkrétním potřebám. Můžete si nastavit, jaká data budete sbírat, jak budou analyzována a jakým způsobem budou prezentována. Také můžete vytvářet vlastní metriky a reporty, které vám pomohou lépe pochopit chování vašich uživatelů, aniž byste byli omezeni funkcemi, které nabízí nástroje třetích stran.

4. Prevence nezvyklé aktivity

Dalším důvodem, proč napsat vlastní monitorovací nástroj, je schopnost sledovat a detekovat nezvyklou aktivitu na webu. Systémy třetích stran jako Google Analytics vám poskytují pouze základní přehled o návštěvnosti a chování uživatelů, ale nejsou zaměřeny na pokročilou detekci anomálií a zabezpečení.

Vlastní nástroj může zahrnovat funkce pro detekci podezřelých aktivit, jako jsou například neobvyklé vzorce návštěvnosti, pokusy o neoprávněný přístup nebo neobvyklé chování uživatelů. To vám umožní rychle reagovat na potenciální hrozby a chránit vaši platformu.

Jak napsat vlastní nástroj v Nette

Pokud se rozhodnete napsat vlastní monitorovací nástroj, Nette framework je ideálním prostředím pro vývoj tohoto typu aplikace. Nette nabízí robustní nástroje pro práci s databázemi, routováním a formuláři, což z něj činí skvélé prostředí pro vytváření vlastní analytiky.

Pro sledování přístupů a chování uživatelů na vašem webu můžete vytvořit jednoduchý systém, který bude zaznamenávat návštěvy, analyzovat chování uživatelů a generovat přehledy. Tento nástroj bude běžet na vašem vlastním serveru, což vám zajistí plnou kontrolu nad daty a soukromím.

Základní kroky pro implementaci:

  1. Záznam přístupů – Vytvořte databázovou tabulku pro zaznamenávání informací o každém přístupu na web, jako jsou IP adresy, čas návštěvy, navštívené stránky, použitý prohlížeč a další relevantní údaje.
  2. Analýza dat – Vytvořte skripty pro analýzu těchto dat a identifikaci vzorců chování, které mohou naznačovat nezvyklou aktivitu.
  3. Vytváření reportů – Pomocí Nette generujte přehledy o aktivitě na webu, které vám pomohou pochopit, jak se uživatelé chovají a kde mohou být potenciální problémy.
  4. Bezpečnostní funkce – Zajistěte, aby váš systém zahrnoval detekci anomálií a pokročilé funkce pro identifikaci a prevenci nelegálních aktivit.

Tento přístup vám poskytne naprostou kontrolu nad vašimi daty a zajistí, že budete mít vždy přehled o tom, co se na vašem webu děje, bez nutnosti spoléhat se na třetí strany.

A šmitec (nebo smyčec?)

Používání Google Analytics může mít výhody, ale zároveň přináší značná rizika v oblasti ochrany soukromí uživatelů a kontroly nad daty. Místo toho, abyste se spolehli na externí nástroje, můžete napsat vlastní monitorovací systém, který vám poskytne plnou kontrolu nad vašimi daty, ochranu soukromí vašich uživatelů a schopnost detekovat nezvyklé aktivity na webu. Vytvoření takového nástroje v Nette není nijak složité a může být pro váš projekt mnohem přínosnější než nechat Google nebo Facebook sledovat vaše návštěvníky.

Posunutí verze PHP na 8.4 v Docker kontejneru pro Virtuální azyl

Posunutí verze PHP na 8.4 v Docker kontejneru pro Virtuální azyl

V rámci neustálého vylepšování platformy virtualniazyl.cz jsem se rozhodl posunout verzi PHP na 8.4 v našem Docker kontejneru. Tento krok přináší několik vylepšení, která zjednodušují vývoj i optimalizaci aplikace. PHP 8.4 přináší nové možnosti, včetně vylepšení výkonu a nových jazykových funkcí, které jsou pro moderní aplikace klíčové.

Jedním z největších benefitů pro vývojáře je zrychlení aplikací díky vylepšením v runtime, ale také přidání nových nástrojů pro optimalizaci kódu. Osobně se těším i na nadcházející verzi PHP 8.5, která slibuje další inovace, jako například podporu nových syntaxí a nových možností pro efektivní práci s objekty a třídami.

Pokud se podíváme na širší kontext, tak se v rámci tohoto posunu zaměřujeme také na optimalizace, které využívají vlastnosti frameworku Nette. V nedávno vydaném článku na blogu Nette se popisuje, jak jedna řádka v konfiguraci může výrazně zrychlit vaši Nette aplikaci. Tato změna souvisí s tím, jak Nette dokáže inteligentně optimalizovat způsob, jakým pracuje s požadavky a jakým způsobem jsou zpracovávány jednotlivé požadavky na server.

V článku se například uvádí, že díky nové vlastnosti frameworku, která zjednodušuje cachování a zrychluje práci s routováním, je možné ušetřit i několik milisekund na každém požadavku. Tato optimalizace se hodí zejména pro projekty, kde je důležité dosahovat vysokého výkonu a nízké latence.

Pro více informací o této optimalizaci si můžete přečíst celý článek na blogu Nette, kde se dozvíte, jak tuto novou vlastnost využít.

S těmito změnami, jak v PHP, tak v Nette, se těším na to, co přinese PHP 8.5 a jaké nové možnosti pro zrychlení a zjednodušení vývoje nám přinese.

Budu samozřejmě kontejner nějakou dobu testovat než ho nasadím na zatím běžící testovací verzi.

Dokončování projektů

Dokončování projektů

Dotahování věcí do konce je náročné

Na začátku projektu je vše nové a vzrušující. Každý krok vpřed přináší radost z pokroku a představa konečného výsledku nás žene kupředu. Jakmile se však přiblížíme k cíli, často se dostaví zcela opačný pocit. Nadšení začne slábnout a objevuje se únava, nechuť nebo dokonce tendence začít něco nového. Dokončování projektů je přitom jednou z nejnáročnějších fází. Vidíme cíl, ale jeho dosažení vyžaduje pevnou vůli a schopnost překonat poslední překážky. Mnoho lidí v tomto bodě selhává, protože podcení význam posledních kroků a nechají práci rozdělanou.

Obrnit se a vydržet

K úspěšnému dokončení projektu je nutné vytrvat. Je snadné nechat se ukolébat představou, že „to už nějak dopadne“, nebo že detaily nejsou až tak důležité. Takové myšlenky však mohou mít katastrofální dopad na výsledek. Je důležité si uvědomit, že právě preciznost a důslednost na konci rozhodují o tom, zda projekt bude považován za úspěšný. Obrnit se trpělivostí a odhodláním je klíčem k překonání tohoto období. Je třeba si připomínat, proč jsme projekt začali, jaké cíle jsme si stanovili a co nás motivovalo. Tím si udržíme nejen směr, ale také důvod k pokračování.

Rozdělit projekt na menší části

Jedním z nejúčinnějších nástrojů pro dokončování projektů je rozdělení práce na menší, zvládnutelné úkoly. Tyto části by měly být dostatečně malé, aby bylo možné je dokončit v relativně krátkém čase. Každý úkol by měl být konkrétní a měřitelný, což umožňuje jasně vidět pokrok. Navíc, když si každý úkol odškrtneme jako splněný, získáme další motivaci pokračovat. Důležité je držet se plánu a změny dělat až ve chvíli, kdy je celý projekt nebo jeho část hotová. Neustálé upravování v průběhu práce nejen zpomaluje pokrok, ale také vede k frustraci.

Dobrá specifikace kroků a cílů

Když do projektu vstupují klienti, může být tlak na dokončení ještě větší. Klienti mají své představy a očekávání, která nemusí vždy odpovídat realitě. Proto je klíčové dobře specifikovat jednotlivé kroky a cíle už na začátku. Jasně definované cíle pomáhají nejen klientům lépe pochopit, co mohou očekávat, ale také usnadňují týmovou spolupráci. Každý člen týmu ví, co je jeho úkolem, a jak jeho práce přispívá k celkovému cíli. Specifikace kroků rovněž pomáhá při komunikaci s klienty, kteří tak mohou vidět, jak projekt postupuje, a snadněji akceptují nutnost dodržování jednotlivých fází.

Dokončování projektu nejlepsiplneni.cz

Jedním z konkrétních příkladů úspěšného dokončování projektů je marketingová kampaň pro skupinu LiveProperty.cz, která zahrnovala web nejlepsiplneni.cz. Tento projekt byl zaměřen na propagaci a posílení povědomí o službách společnosti.

Součástí projektu byly také další weby, které rozšiřují jeho dosah a přispívají k celkové strategii. Mezi tyto weby patří:

Každý z těchto webů měl jasně definovaný cíl a byl realizován v souladu s principy efektivního projektového řízení. Díky pečlivému plánování a důslednému dodržování kroků se podařilo úspěšně dokončit všechny části a dosáhnout požadovaných výsledků. Tento přístup ilustruje důležitost strategického rozdělení projektu a zaměření na jednotlivé fáze práce.

Srovnání PHP 7, PHP 8 a podrobný pohled na PHP 8.1, 8.3 a 8.4

Srovnání PHP 7, PHP 8 a podrobný pohled na PHP 8.1, 8.3 a 8.4

PHP je jedním z nejpoužívanějších jazyků pro vývoj webových aplikací. V průběhu let prošlo zásadními změnami, které dramaticky zlepšily výkon, bezpečnost a vývojářský komfort. Tento článek se zaměřuje na srovnání PHP 7 a PHP 8 a detailně analyzuje klíčové změny v PHP 8.1, 8.3 a PHP 8.4, přičemž se podíváme i na plánované novinky ve verzi PHP 8.5.


PHP 7: Revoluce ve výkonu

PHP 7 bylo vydáno v prosinci 2015 a přineslo obrovský skok v oblasti výkonu. Díky novému Zend Engine (nazývanému také PHPNG – PHP Next Generation) došlo k:

  • Zdvojnásobení rychlosti zpracování většiny aplikací.
  • Snížení spotřeby paměti, což umožnilo větší škálovatelnost aplikací.

Novinky v PHP 7:

  1. Skalární typy: function addNumbers(int $a, int $b): int { return $a + $b; } echo addNumbers(5, 10); // 15
  2. Operátor nulového sloučení: $username = $_GET['user'] ?? 'Guest';
  3. Anonymní třídy: $obj = new class { public function sayHello() { return "Hello, World!"; } }; echo $obj->sayHello();

PHP 8: Moderní přístup

Vydání PHP 8 v listopadu 2020 přineslo další revoluci. PHP se stalo moderním jazykem, který kombinuje rychlost, bezpečnost a snadnou použitelnost.

Klíčové novinky v PHP 8:

  1. Just-In-Time (JIT) kompilace: JIT umožňuje překlad často používaného kódu do strojového kódu, což dramaticky zvyšuje výkon v některých scénářích, například u numerických výpočtů.
  2. Atributy (annotations): #[Route("/api", methods: ["GET"])] class ApiController { // ... }
  3. Match výraz: $result = match ($status) { 200 => 'OK', 404 => 'Not Found', default => 'Unknown status', };
  4. Bezpečnost a typování: Zavedla se přísnější kontrola typů, díky čemuž je kód spolehlivější.

Srovnání výkonu PHP 7 vs PHP 8

Jedním z klíčových faktorů přechodu na PHP 8 je jeho vyšší výkon. Příklad ukazuje rozdíl v rychlosti zpracování velkého počtu iterací:

PHP 7:

$start = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
    $result = sqrt($i);
}
$time = microtime(true) - $start;
echo "PHP 7 runtime: $time seconds";

PHP 8:

$start = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
    $result = sqrt($i);
}
$time = microtime(true) - $start;
echo "PHP 8 runtime: $time seconds";

Výsledky ukazují, že PHP 8 je přibližně o 30 % rychlejší díky optimalizacím v JIT.


PHP 8.1: Dokonalejší nástroje pro vývojáře

PHP 8.1, vydané v listopadu 2021, přineslo řadu funkcí, které usnadňují práci vývojářům.

Hlavní novinky v PHP 8.1:

  1. Enumerace (Enums): enum Status: string { case Draft = 'draft'; case Published = 'published'; case Archived = 'archived'; }
  2. Asynchronní funkce (Fibers): Fibers přinášejí možnost pracovat s kooperativními vlákny. $fiber = new Fiber(function (): void { echo "Fiber started\n"; Fiber::suspend(); echo "Fiber resumed\n"; }); $fiber->start(); echo "Main script\n"; $fiber->resume();
  3. Read-only vlastnosti: class User { public readonly string $name; public function __construct(string $name) { $this->name = $name; } }

PHP 8.3: Drobné, ale užitečné zlepšení

PHP 8.3, vydané v listopadu 2023, se zaměřilo na vylepšení použitelnosti a nové nástroje.

Nejzajímavější novinky:

  1. Zapisování pouze při neexistenci: $array['key'] ??= 'default';
  2. JSON_VALIDATE: Nový příznak pro validaci JSON dat bez jejich dekódování. $isValid = json_decode($json, flags: JSON_VALIDATE) !== null;
  3. Zlepšení typových kontrol: PHP 8.3 přineslo přísnější kontrolu přetypování.

PHP 8.4: Poslední novinky

PHP 8.4, vydané v listopadu 2024, přineslo:

  1. Vylepšení JIT: Další optimalizace výkonu u složitých výpočtů.
  2. Nové syntaktické konstrukty: Přidána podpora pro snadnější manipulaci s datovými strukturami.
  3. Zlepšení práce s paralelním kódem: Dále rozšířená podpora Fibers.

Co přinese PHP 8.5?

Plánované vydání PHP 8.5 se zaměří na:

  1. Podporu vícevláknových operací.
  2. Zlepšení práce s asynchronním kódem.
  3. Další optimalizace výkonu a typových kontrol.

Výkonové testy

Podle měření společnosti Kinsta vykazuje PHP 8 ve většině aplikací (např. WordPress) o 50-70 % lepší výkon než PHP 7. PHP 8.1 přidává dalších 5-10 % díky optimalizacím JIT a dalším změnám.

Například WordPress zpracovává průměrně 90 požadavků za sekundu na PHP 7, zatímco na PHP 8.1 je to 140 požadavků za sekundu. Více informací naleznete v testech Kinsta.


Shrnutí

PHP 7 znamenalo zásadní přelom v oblasti výkonu a moderních funkcí. PHP 8 a jeho následné verze přinesly další nástroje pro vývojáře, zlepšení bezpečnosti a výkonu. Díky těmto změnám se PHP stále drží na špičce mezi jazyky pro vývoj webových aplikací.


Ukázky kódu v článku ukazují, jak nové funkce usnadňují práci a činí kód robustnějším. Pokud stále používáte PHP 7, je nejvyšší čas na upgrade na PHP 8.4 nebo brzy na PHP 8.5.

Novinky v Nette: Vylepšená funkcionalita, dokumentace a budoucnost s PHP 8.5

Novinky v Nette: Vylepšená funkcionalita, dokumentace a budoucnost s PHP 8.5

Nette, jeden z nejpopulárnějších PHP frameworků, přichází s řadou vylepšení, která posouvají hranice jeho možností. Tato nová verze nejen zrychluje běh aplikací díky chytrým optimalizacím, jako je lazy nahrávání objektů, ale také přináší významné zlepšení dokumentace, což usnadňuje vývojářům práci a zvyšuje přístupnost frameworku. Podívejme se podrobněji na tyto změny a zamysleme se nad tím, co nás čeká v budoucí verzi PHP 8.5.

Lazy nahrávání objektů: Zrychlení, které ocení každý vývojář

Jednou z nejvýznamnějších novinek v Nette je zavedení tzv. lazy nahrávání objektů (lazy loading). Tento koncept umožňuje frameworku načítat objekty pouze v okamžiku, kdy jsou skutečně potřeba. Výsledkem je výrazné snížení nároků na paměť a zrychlení celé aplikace.

Například, pokud vaše aplikace pracuje s databází a potřebuje načíst data z několika tabulek, Nette nyní dokáže odložit načtení těchto dat, dokud se s nimi nezačne přímo pracovat. To znamená, že se výrazně snižuje počet SQL dotazů prováděných při každém požadavku.

Jednoduché zapnutí v konfiguraci

Jedním z nejlepších aspektů této novinky je její jednoduchá implementace. Stačí přidat jediný řádek do konfigurace:

nette:
    database:
        lazy: true

Tato změna umožňuje vývojářům snadno přejít na nový systém bez nutnosti složitého přepisování aplikace. Více informací naleznete v článku „Jedna řádka v konfiguraci zrychlí vaši Nette aplikaci“.

Výsledky v praxi

Testy ukazují, že aplikace využívající lazy nahrávání mohou dosáhnout až o 40 % lepšího výkonu v závislosti na povaze aplikace a množství dat, se kterými pracuje. Tato optimalizace je proto vhodná zejména pro projekty s velkými databázemi nebo složitými dotazy.

Nová dokumentace: Snadnější přístup pro všechny

Nette je známé svou kvalitní dokumentací, která je přístupná jak začátečníkům, tak zkušeným vývojářům. S posledními změnami v dokumentaci databázového modulu však tento standard posunulo na zcela novou úroveň.

Nový průvodce pro práci s databází, dostupný na dokumentační stránce, je navržen tak, aby pomohl vývojářům snadno pochopit klíčové koncepty a efektivně využívat všechny funkce databázového modulu.

Hlavní vylepšení v dokumentaci

  1. Lepší struktura: Dokumentace je nyní logicky rozčleněna do menších sekcí, což umožňuje snadnější orientaci. Můžete rychle přejít k částem věnovaným konkrétním funkcím, jako je Explorer nebo práci s transakcemi.
  2. Praktické příklady: Každá sekce obsahuje ukázky kódu, které lze okamžitě použít v praxi. Například následující příklad ukazuje, jak snadno vytvořit dotaz pomocí Exploreru:
$rows = $explorer->table('users')->where('age > ?', 18);
foreach ($rows as $row) {
    echo $row->name;
}
  1. Propojení s blogovými články: Dokumentace obsahuje odkazy na související blogové články, například „Nette Database dokumentace, která posouvá hranice“. Tyto články poskytují hlubší vhled do jednotlivých funkcí a jejich využití v reálných scénářích.
  2. Interaktivní příklady: Některé části dokumentace obsahují interaktivní prvky, které umožňují vývojářům vyzkoušet si kód přímo v prohlížeči.

Proč je nová dokumentace důležitá

Dobrá dokumentace šetří čas a eliminuje zbytečné chyby. Nové vylepšení v dokumentaci Nette zajišťuje, že i složité koncepty, jako je práce s Explorerem, jsou snadno pochopitelné a aplikovatelné.

Budoucnost s PHP 8.5

Nette vždy rychle přijímá novinky z nových verzí PHP a verze 8.5 nebude výjimkou. Co můžeme očekávat od této nadcházející verze PHP?

Možné novinky v PHP 8.5

  1. Vylepšení výkonu: S každou novou verzí PHP přicházejí optimalizace v jádře, které zrychlují běh aplikací. V kombinaci s lazy loadingem v Nette mohou tyto změny dále snížit latenci a zlepšit uživatelskou zkušenost.
  2. Nové jazykové konstrukce: PHP 8.5 by mohlo přinést nové syntaxe nebo konstrukce, které zjednoduší zápis kódu. Například další vylepšení pro práci s typovou kontrolou nebo rozšíření funkcionality match.
  3. Bezpečnostní vylepšení: Bezpečnost je vždy prioritou. PHP 8.5 pravděpodobně přinese lepší ochranu proti běžným hrozbám, jako jsou útoky typu SQL injection nebo XSS.
  4. Podpora pro moderní vývojové nástroje: S rostoucí popularitou Dockeru a CI/CD pipeline můžeme očekávat zlepšení integrace s těmito nástroji, což usnadní nasazování a správu aplikací.

Jak se na to připravit?

Vývojáři by měli sledovat oficiální kanály PHP a Nette, aby zůstali informováni o novinkách. Doporučuje se také pravidelně aktualizovat své aplikace a testovat je na nových verzích PHP.

Jak to bude dál?

Novinky v Nette, jako je lazy nahrávání objektů a vylepšená dokumentace, představují významný krok vpřed pro tento framework. Tyto změny nejen zrychlují vývoj, ale také zlepšují přístupnost a usnadňují práci vývojářům. Budoucnost s PHP 8.5 slibuje další zlepšení, která posunou hranice toho, co lze v PHP dosáhnout.

Sledujte oficiální blog Nette a PHP, abyste zůstali v obraze, a neváhejte implementovat nové funkce, které vám mohou ušetřit čas a zdroje. Nette opět dokazuje, proč je jedním z nejlepších nástrojů pro moderní webový vývoj.

Redesign webu liveproperty.cz: Nová identita jako nejlepsiplneni.cz

Redesign webu liveproperty.cz: Nová identita jako nejlepsiplneni.cz

Redesign webu je vždy zásadním krokem pro každou společnost, která usiluje o zlepšení své online prezentace, a přechod z liveproperty.cz na nejlepsiplneni.cz byl tímto krokem výrazným způsobem. Tento projekt nebyl pouhým převodem webu, ale kompletní změnou identity, designu a technologie, což společnosti přineslo novou dynamiku a možnost lépe oslovit své zákazníky.

Důvody pro změnu

Původní web liveproperty.cz se zaměřoval na zprostředkování nemovitostí, ale časem bylo třeba reagovat na nové požadavky trhu a rozšířit portfolio služeb. Rebranding na nejlepsiplneni.cz reflektuje tuto změnu směru. Hlavním cílem bylo vytvořit moderní, přístupný a vizuálně atraktivní web, který odpovídá aktuálním standardům a podporuje lepší komunikaci s klienty.

Použité technologie

Redesign webu byl realizován pomocí kombinace frameworků Nette a Latte, které byly využity pro robustní backend a efektivní šablonování. Frontend webu staví na populárním frameworku Bootstrap, který poskytuje flexibilitu a responzivitu designu.

  • Nette Framework: Tento český framework byl zvolen pro svou stabilitu, flexibilitu a širokou komunitu. Umožnil vytvářet bezpečný a snadno udržovatelný backend.
  • Latte: Latte šablonovací engine se postaral o čistotu kódu a přehledné šablony, které zjednodušují tvorbu dynamických stránek.
  • Bootstrap: Díky Bootstrapu byl web optimalizován pro různá zařízení, což zajistilo perfektní uživatelský zážitek na mobilních telefonech, tabletech i stolních počítačích.

Klíčové prvky redesignu

  1. Moderní design: Nový web je minimalistický, přehledný a elegantní. Velký důraz byl kladen na barevný kontrast, snadnou navigaci a vizuálně atraktivní prvky.
  2. Responzivita: Web je plně responzivní, což zajišťuje bezchybné zobrazení na zařízeních různých velikostí.
  3. Zlepšení UX: Hlavní cíl redesignu bylo zlepšit uživatelský zážitek (UX). Navigace byla zjednodušena, aby uživatelé rychle našli informace, které hledají.
  4. Optimalizace pro vyhledávače (SEO): Struktura stránek byla navržena s ohledem na SEO, aby web lépe odpovídal požadavkům vyhledávačů.
  5. Integrace nových funkcí: Nový web zahrnuje nástroje pro lepší interakci s klienty, včetně kontaktních formulářů a interaktivních prvků.

Co redesign přinesl

Nová identita nejlepsiplneni.cz přinesla nejen estetický pokrok, ale také zlepšila technickou funkcionalitu webu. Společnost nyní může lépe komunikovat své hodnoty, zaujmout nové klienty a efektivněji prezentovat své služby. Rebranding posílil značku, přinesl jasnou vizi a otevřel dveře novým obchodním příležitostem.

Závěr

Redesign webu liveproperty.cz a jeho transformace na nejlepsiplneni.cz je ukázkovým příkladem, jak technologie jako Nette, Latte a Bootstrap mohou pomoci vytvořit moderní, udržovatelný a atraktivní web. Tato změna je inspirací pro firmy, které chtějí posunout svou online prezentaci na vyšší úveň.

Virtuální Azyl: Revoluce v adopci zvířat začíná

Beta verze spuštěna! (Hurá!!!) 😉

Rádi bychom vám představili náš nový projekt Virtuální Azyl, který vznikl s cílem propojit azylová centra, útulky a zájemce o adopci zvířat na jednom místě. Tento ambiciózní projekt přináší nový způsob, jak najít domov pro opuštěná zvířata a zároveň usnadnit adopční proces.

O projektu

Virtuální Azyl je platforma postavená na moderních technologiích, jako jsou PHP 8.3 (asi plná verze bude na 8.4), Nette framework, ORM Doctrine, Latte šablony a frontendové technologie Bootstrap a JQuery. Systém umožňuje:

  • Jednoduché vyhledávání zvířat k adopci.
  • Propojení jednotlivých útulků a azylů.
  • Vytváření profilů zájemců o adopci.
  • Transparentní a bezpečný proces komunikace.

Vývoj a současný stav

Projekt je aktuálně ve fázi beta verze, která je plně funkční, ale stále probíhá intenzivní vývoj. Spousta věcí se ještě tvoří, testuje a analyzuje. Každý den pracujeme na nových funkcionalitách, opravách chyb a optimalizaci systému. Mezi hlavní výzvy patří:

  • Vytváření efektivních a intuitivních funkcí.
  • Zajištění stability a bezpečnosti systému.
  • Testování s reálnými uživateli.

Budoucnost Virtuálního Azylu

Naší vizí je vytvořit platformu, která bude srozumitelná a dostupná jak útulkům, tak zájemcům o adopci. Pracujeme na implementaci dalších funkcí, jako je například zlepšené filtrování, správa adopčních procesů nebo integrace s dalšími systémy.

Pokud vás projekt zaujal, neváhejte nás kontaktovat nebo se zapojit do testování beta verze. Každá zpětná vazba nás posouvá blíže k cíli – spojit všechny útulky a azylová centra na jednom místě.

A na konec….

Virtuální Azyl není jen technický projekt; je to cesta, jak zlepšit život opuštěným zvířatům a propojit je s těmi, kteří jim chtějí dát nový domov. Děkujeme všem, kteří nám pomáhají na této cestě.

Vyzkoušejte beta verzi na beta.virtualniazyl.cz a dejte nám vědět, co si myslíte!

Procedurální vs. Objektově orientovaný přístup v PHP: Srovnání a Příklady

Procedurální vs. Objektově orientovaný přístup v PHP: Srovnání a Příklady

PHP je jazyk, který podporuje jak procedurální, tak objektově orientovaný přístup (OOP). Každý z těchto přístupů má své výhody a nevýhody a je vhodný pro různé typy projektů. Tento článek porovná oba přístupy a ukáže, jak se liší na praktických příkladech, včetně aplikace v různých frameworkách, jako je Nette.


Procedurální přístup

Procedurální programování je tradiční způsob psaní kódu, kde jsou programy strukturovány kolem funkcí a volání procedur.

Vlastnosti procedurálního přístupu

  • Jednoduchost: Kód je čtivý a snadno pochopitelný.
  • Přímá logika: Programování krok za krokem.
  • Vhodné pro menší projekty: Ideální pro jednoduché aplikace a skripty.

Příklad procedurálního kódu

Představme si jednoduchý příklad kalkulačky:

<?php
function add($a, $b) {
    return $a + $b;
}

function subtract($a, $b) {
    return $a - $b;
}

$result = add(10, 5);
echo "Součet: $result\n";

$result = subtract(10, 5);
echo "Rozdíl: $result\n";

Tento přístup je jednoduchý a intuitivní, ale s rostoucí složitostí projektu může být obtížně spravovatelný.


Objektově orientovaný přístup (OOP)

OOP strukturuje kód kolem objektů, které obsahují data (vlastnosti) a funkce (metody). Tento přístup podporuje opětovné využití kódu a lepší organizaci.

Vlastnosti OOP

  • Modularita: Kód je rozčleněn do tříd a objektů.
  • Opětovné použití: Objekty lze snadno opětovně použit v různých částech programu.
  • Lepší udržovatelnost: Jasná struktura a oddělení zodpovědnosti.

Příklad OOP kódu

Ukažme si stejný příklad kalkulačky v OOP:

<?php
class Calculator {
    public function add($a, $b) {
        return $a + $b;
    }

    public function subtract($a, $b) {
        return $a - $b;
    }
}

$calculator = new Calculator();

$result = $calculator->add(10, 5);
echo "Součet: $result\n";

$result = $calculator->subtract(10, 5);
echo "Rozdíl: $result\n";

Výkon a organizace jsou výrazně lepší, což usnadňuje práci na větších projektech.


Příklad použití: Nette Framework

Nette je typický příklad frameworku, který podporuje objektově orientovaný přístup. Struktura aplikace v Nette je založena na třídách, které reprezentují kontrolery, modely a komponenty.

Příklad OOP v Nette

Představme si jednoduchý formulář pro přidání uživatele:

<?php
class UserPresenter extends Nette\Application\UI\Presenter {
    public function createComponentUserForm() {
        $form = new Nette\Application\UI\Form();
        $form->addText('name', 'Jméno:')
             ->setRequired('Zadejte jméno.');

        $form->addSubmit('send', 'Odeslat');
        $form->onSuccess[] = [$this, 'userFormSucceeded'];

        return $form;
    }

    public function userFormSucceeded($form, $values) {
        // Logika při odeslání formuláře
        $this->flashMessage('Uživatel přidán.', 'success');
        $this->redirect('Homepage:default');
    }
}

Tento přístup je strukturovaný a podporuje opětovné použití komponent.


Příklad použití: Procedurální přístup v jednodušších projektech

Procedurální přístup lze použít například v menších skriptech nebo jednodušších aplikacích. Příkladem je jednoduchá aplikace pro zpracování formuláře:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'] ?? '';
    if ($name === '') {
        echo "Zadejte jméno.";
    } else {
        echo "Uživatel $name byl přidán.";
    }
}

I když je tento přístup jednodušší, rychle naráží na limity u složitějších aplikací.


Srovnání

AspektProcedurální přístupOOP
JednoduchostJednoduchý na naučení a použitíVyžaduje znalost tříd a objektů
ModularitaOmezenáVysoká
UdržovatelnostObtížnějšíSnadná
VhodnostMenší projektyStřední a velké projekty

Závěr

Procedurální přístup je vhodný pro jednodušší aplikace a skripty, zatímco OOP je ideální pro složitější projekty, kde je důležitá modularita a udržovatelnost. Frameworky jako Nette důkazně ukazují výhody OOP přístupu, zatímco procedurální přístup najde své využití v jednodušších kontextech. Správný výběr závisí na konkrétních potřebách projektu.

Latte – Šablonovací jazyk pro moderní weby

Latte – Šablonovací jazyk pro moderní weby

Latte je populární šablonovací jazyk vytvořený pro PHP, který klade důraz na bezpečnost, přívětivost a flexibilitu. Jedná se o nástroj určený primárně pro vytváření HTML stránek, který zjednodušuje práci s prezentací dat a odděluji logiku aplikace od jejího vzhledu.


Klíčové vlastnosti Latte

  1. Bezpečnost
    • Latte automaticky escapuje všechny výstupy, aby zabránilo XSS útokům.
    • Nabízí jednoduchý způsob, jak pracovat s proměnými, bez obav z potenciálních bezpečnostních rizik.
  2. Srozumitelnost
    • Syntaxe je intuitivní a snadno pochopitelná i pro začátečníky.
    • Podporuje jednoduché čtení a udržování šablon.
  3. Flexibilita
    • Lze jej snadno rozšířit pomocí vlastních filtrů a funkcí.
    • Podporuje složitější konstrukty, jako jsou podmínky, cykly nebo makra.

Latte 3: Impozantní skok vpřed

Latte 3 přináší mnoho vylepšení a novinek, které zvyšují jeho rychlost, flexibilitu a přizpůsobitelnost.

Hlavní novinky v Latte 3

  1. Deklarace typů
    • Latte nyní podporuje deklaraci typů proměných přímo v šablonách: {var string $name} <h1>Ahoj, {$name}!</h1>
  2. Výrazně rychlejší kompilace
    • Latte 3 bylo optimalizováno pro lepší výkon při zpracování šablon.
  3. Podpora pro Twig-like syntax
    • Nově lze používat alternativní notaci podobnou Twig: {% if user %} <p>Vítám tě, {{ user.name }}!</p> {% endif %}
  4. Zjednodušené makro pro cykly
    • Možnost použít elegantní iteraci přes pole: {foreach $items as $item} <li>{$item}</li> {/foreach}
  5. Lepší diagnostika
    • Latte nyní poskytuje detailnější chybové hlášky, které usnadňují ladění šablon.

Základní příklady Latte

1. Podmínky

{if $isLoggedIn}
    <p>Vítáme tě zpět!</p>
{else}
    <p>Prosím, přihlašte se.</p>
{/if}

2. Výpis dat

<ul>
    {foreach $users as $user}
        <li>{$user->name}</li>
    {/foreach}
</ul>

3. Komentáře

{* Toto je komentář v Latte *}

4. Použití filtrů

<p>{date $article->createdAt, 'd.m.Y'}</p>

Proč používat Latte?

Latte je ideální volbou pro projekty, kde je důležitá bezpečnost, rychlost a snadná udržitelnost kódu. S verzí Latte 3 se tento šablonovací jazyk posouvá ještě dále a přináší nástroje pro moderní webové aplikace.

Propojení Latte a Nette

Latte je úzce propojené s frameworkem Nette, který ho používá jako svůj nativní šablonovací jazyk. Nette poskytuje robustní integraci, která umožňuje snadnou práci s daty z presenterů přímo v šablonách. Tato kombinace zajišťuje hladký průběh vývoje aplikací s jasně oddělenou logikou a prezentací.