Přečti si komunitní PHP blog


Taky přidej článek     Hoď nás do RSS


SOLID principy – 4. díl: Princip odděleného rozhraní

4 min | by Michal Katuščák

Princip odděleného rozhraní je definované Robertem C. Martinem původně pro Xerox a říká:

Více specifických rozhraní je lepší než jedno obecné rozhraní.

Při jeho dodržování se kód stává více znovupoužitelný a užitečný. Pokud je více tříd nuceno implementovat rozhraní s metodami, které nepotřebují, je vhodné najít logický průnik (v čem se shodují) a rozhraní oddělit.


Domain-Driven Design - Language

5 min | by Svaťa Šimara

Domain-driven design is a software design that focuses on understanding underlying business. It is useful for long-term projects because it leads to high-quality software that serves users. It helps when dealing with difficult problems, keeps track of core problems and prevents us from getting lost in the code.


Doctrine 2 – Dědičnost entit

4 min | by Tomáš Pilař

Entity v ORM (objektově relační mapování) zachycují objekty z reálného světa a transformují je do tříd v programovacím jazyku. V reálném světě má vždy skupina objektů stejné vlastnosti a liší v některých detailech. Všichni lidé mají jméno, datum narození, pohlaví, ale liší se v barvě očí, pleti, dovednostech apod.

Při čistém návrhu entit by se nám tedy hodila dědičnost. Umí ji Doctrine zpracovat, a jak s takovou entitou pracuje?


Jak jsi začal s PHP?

2 min | by Tomáš Votruba

Dnes se řeší jaká technologie je nejlepší, kdo má větší kontejner nebo nejnovější smartfoun. Ve víru informací se zapomíná na to, jak naše PHP cesty vlastně začaly. Co v nás tu vášeň zažehlo.

Před nedávnem jsme dávali anketu Jak jsi začal s PHP. Pojďme si tu vášeň připomenout - tady je pár vybraných kousků, které jste nám poslali.


Tipy na potopení projektu: #1 Trvejte na oblíbeném komunikačním kanále

2 min | by Petr 'PePa' Pavel

Existuje tisíc a jeden způsobů, jak podělat projekt, a v našem seriálu si některé ukážeme. Dnes bych rád mluvil o způsobu komunikace.


How to connect ELK with Monolog

9 min | by Matěj Račinský

ELK is awesome stack for logging. Monolog is awesome PHP logging library. Let's make them work together.


How to use ELK stack

3 min | by Matěj Račinský

In this article, I'll show you how to use ELK stack for logging. We will use ELK in docker for easy setup.


Jak hromadně spravovat privátní composer balíčky

4 min | by Martin Knor

Composer je dobrý sluha, ale zlý pán, pokud nevíte jak s ním pracovat. Podívejte se na naše workflow vývoje, kdy je dána plně modulární aplikace a ta se řídí závislostmi na konkrétních balíčcích.


Arachne/Verifier + Arachne/EntityLoader - Using Entities in Verifier Rules

4 min | by Jáchym Toušek

This article demonstrates that while Arachne components are mostly independent on each other, their potential raises dramatically when you use them together. Push both Arachne/ParameterValidation and Arachne/SecurityVerification to their limits with Arachne/EntityLoader!


Arachne/EntityLoader - Object Parameters for Nette/Application

2 min | by Jáchym Toušek

Ever wanted to get rid of EntityManager::find($id) as the first thing in your every presenter action? With Arachne/EntityLoader you can. Of course it is not limited to Doctrine, you can easily use it with a different ORM library.


Arachne/Verifier - Request Validator for Nette/Application

3 min | by Jáchym Toušek

The concept behind Arachne/Verifier was originally meant to solve annotations-based authorization for Nette/Application. Now after years of development it is no longer limited to neither annotations nor authorization making it a very powerful tool for your security layer.


Arachne/Security - Simplified Authorizator and Fixed ACL Callbacks

3 min | by Jáchym Toušek

Authorization in Nette/Security has some long-known drawbacks as demonstrated in my 4 years old RFC (Czech only). This article will show you how you can solve these problems using the enhanced API provided by Arachne/Security.


Arachne/Security - Separate Authentication and Session Refresh

4 min | by Jáchym Toušek

In many cases Nette/Security lacks the API needed for certain tasks. Experienced Nette users therefore often recommend using some custom solution instead. In this article I'll go over the known problems with user authentication and how Arachne/Security can help you solve them.


The Bulletproof Event Naming For Symfony Event Dispatcher

4 min | by Tomáš Votruba

I wrote intro to Symfony\EventDispatcher and how to use it with simple event.

But when it comes to dispatching events, you can choose from 4 different ways. Which one to choose and why? Today I will show you pros and cons of them to make it easier for you.


Nenechte si podrazit nohy iterátory v PHP

This post is Tested

5 min | by Honza Kuchař

Iterátory v PHP jsou občas zrádné. V některých kolekcích se chovají neintuitivně. Zjistěte proč a vyhnete se tím hodinám zbytečného hledání chyb.


Best Practice for Symfony Console in Nette

4 min | by Filip Procházka

If you use Symfony\Console in Nette, you will be probably familiar with php index.php command approach. It has been obsolete since Nette 2.3, and we should all migrate to its successor. This blog post will show you why and how.


Rozběhnutí Symfony na Wedos multihostingu

2 min | by Lukáš Vraný

Spuštění webu postaveném na Symfony na Wedos multihostingu vypadalo na první pohled jako snadná věc. Nakonec jsem se na tom zasekl na 3 dny, než jsem přišel na to, jak hosting správně nastavit.
Aby se s tím nemusel trápit někdo další, tak jsem se rozhodl sepsat tento článek s návodem a s problémy na které jsem narazil. Finální řešení je nakonec jednoduché.


Nastavení GitLab CI pro produkční aplikaci

7 min | by Tomáš Jacík

GitLab CI je dnes moderní. Vychází o něm články s krásnými, jednoduchými příklady, jak jej začít používat. Pak ale člověk narazí. Jak se utkat s překážkami a vyjít z toho jako vítěz?


Multiple PHP versions, the easy way

5 min | by Michael Moravec

Always wanted to try or run your application with a different PHP version without breaking everything else? Why not, there is a way to run multiple versions in parallel!


Live a file templates v PhpStormu

6 min | by Matěj Račinský

Jak si usnadnit život používáním live a file templates v PhpStormu


Jak posílat e-maily přes Amazon SES

6 min | by Petr Jirásek

Posílat emaily přes Amazon SES je snadné a levné. Zkuste to taky.


Git - proč se jej učit v příkazové řádce

3 min | by Václav Makeš

Tento článek je určen pro začátečníky, kteří se chystají začít učit verzovací systém Git. Popisuje proč se vyplatí používat Git v příkazové řádce namísto v grafickém prostředí externích SW či IDE.


How to add HTTPS to GitHub Pages in 6 Steps

3 min | by Tomáš Votruba

I always loved GitHub Pages, thanks to open-source and free hosting. Last thing that made me feel too oldschool was the plain "http://" protocol. That is usually the main argument why people move from GitHub Pages elsewhere, i.e. their own VPS. What a pity.
Fortunately, thanks for Michal Špaček's ability to explain complex stuff in a simple way, we solved this over a single weekend.


Jak snadné je používat CI

5 min | by Jaroslav Hranička

Nejspíš jste zkratku CI již někde viděli, možná tušíte, co Continuous Integration znamená. Chcete vědět, jak snadno CI používat na vašich projektech? Pak čtěte dále.


PHP u nás čeká rok expanze

3 min | by Tomáš Votruba

Za minulý rok naše php komunita vyrostla jako nikdy předtím. Přestali jsem řešit, kdo má větší framework, začali jsme sdílet online i offline a spojovat se napříč republikou. Mám z toho ohromnou radost!

Dnes se s tebou chci podělit o to, kam jsme zatím došli a jaká velká cesta nás ještě čeká.


Drop RobotLoader and let Composer Deal with Autoloading

4 min | by Tomáš Votruba

Using 2 tools for one thing, in this case 2 packages to autoload classes, are sign of an architecture smell. Many applications I see contain RobotLoader for historical reasons. I will borrow this from psychology: pathological behavioral patterns tear us down in the present, but were useful in past.

The best way to deal with them is acknowledge their purpose and then, let them go and enjoy the gift of present.


Kostra testované aplikace

5 min | by Jaroslav Hranička

Stále tápete, jak vytvořit základní kostru aplikace, kde je Composer vč. autoloaderu a máte i testy? Podíváme se na to, že to je velmi jednoduché.


How to use Dynamic Constraints with Symfony/Validator

This post is Tested

3 min | by Jáchym Toušek

Some edge-cases with Symfony Validator might force you to create a constraint dynamically during the validation. This article will show you how to do it and how to solve error mapping for such constraints.


How to use Conditional Constraints with Symfony/Validator

This post is Tested

4 min | by Jáchym Toušek

In some more complicated cases you need to do some validations only if some condition is met. This article covers the tricks you should use including a new feature in Symfony 3.2.


How to use Comparison Constraints with Symfony/Validator

This post is Tested

2 min | by Jáchym Toušek

With Symfony/Validator there is no obvious way to implement validations like comparing a value to another property on the same object. There are several articles about this topic already but literally all of them are completely outdated. In this article I'll cover the correct way to solve this.


Jak na akceptační testovaní pomocí Codeception

4 min | by Matěj Račinský

Jak automaticky testovat celé stránky a simulovat chování uživatele na webu pomocí Codeception


How to rehash legacy passwords in Symfony

6 min | by Ivan Kvasnica

You need to import users from an old project, but but don't want to bother them with resetting their passwords just because you want to use bcrypt. Fortunately, there is a solution.


Konfigurační objekty v Nette

This post is Tested

4 min | by Tomáš Jacík

Jak se poprat s předáním konfigurace službě z config.neon? A jak k tomu využít Nette DI?


Jak zaregistrovat Nette komponentu jako posluchače událostí

This post is Tested

9 min | by Tomáš Pilař

Dnes si povíme o tom, jak přimět Nette komponenty poslouchat na události, které nám vyvolává aplikace a umožnit jim se podle toho zachovat.


Inteligentní debug mode v Nette

3 min | by Tomáš Jacík

Jak se poprat se zapínáním debug módu při vývoji a jeho vypnutím na produkci? A co debug mód v konzoli? Pojďme se podívat, jak to řešit lépe.


Jak snadno a rychle upravovat soubory ve vendoru?

5 min | by Tomáš Pilař

Už ses někdy dostal do situace, kdy jsi potřeboval opravit chybu nějaké závislosti ve složce vendor? Jak takovou úpravu sdílet v týmu s ostatními programátory a jak ji udržet v souboru i po spuštění composeru? V tomto článku se dovíš, jak snadno a elegantně se tento problém dá vyřešit během 1 minuty.


Jak funguje Dependency Injection v Symfony a v Nette

4 min | by Petr Olišar

V tomto článku si ukážeme základy Dependency Injection – jaký je rozdíl mezi Nette presenterem a Symfony controllerem. A jak přenést trochu chování Nette do Symfony.


Why articles with code examples should be CI tested

4 min | by Tomáš Votruba

I know many great articles that go right to the point. I use their code examples and they work. But when I recommend these articles to people I mentor, I realize the articles are already 2 years old and their code samples probably do not work any more. From hero to zero. Today I will show you how to keep them alive lot longer with a minimal effort.


5 témat, po kterých PHP programátoři touží

3 min | by Tomáš Votruba

Zajímá české a slovenské programátory spíš intro do Gitu nebo Symfony pro pokročilé? Chtějí spíš týdenní výuku nebo víkendovou? Celý den nebo jen pár hodin? Na tyto a další otázky jsme měli jen subjektivní odpovědi. Chěli jsme vědět – a tak vznikl dotazník o vzdělávání na míru - na něj nám odpovědlo 76 z vás a dnes se podělíme o jeho výsledky.


Symfony Console from the Scratch

This post is Tested

3 min | by Tomáš Votruba

Symfony Console is the one package you will probably use to build a PHP CLI app. It's of one the easiest Symfony components. Why? You only create Application class, add your Command class and you are ready to go.


Testování PHP kódu

7 min | by Petr Hejna

Testování aplikací není vždy tak snadné, jak se na papíře jeví. Svojí zkušeností jsem dospěl k několika zásadám a postupům, které se mi osvědčily a které se tu pokusím sepsat a částečně i zdůvodnit. Pomáhají mi k psaní čítelnějších a udržovatelnějších testů. Za hlavní přínos pak považuji snadnou rozšiřitelnost testů, jejíž potřeba přichází s rozšiřováním fukcionality projektu.


Adminer pre Redis, Memcache, RabbitMQ

2 min | by Michal Lulčo

Pred nejakým časom som potreboval vyhľadávať a zoraďovať dáta v Redise. Takže som si k tomu napísal jednoduchý PHP skript. A keď už som ho mal napísaný, chcel som pomôcť aj dalším ľuďom, ktorí by riešili podobný problém ako ja.


Jaký byl SymfonyCon Berlín 2016

2 min | by Pavel Rozehnal

Největší událost v Symfony světě je za námi. Představeny byly služby SensioCloud, nový balíčkovací systém Symfony Flex a mnoho dalšího.


Event Dispatcher from the Scratch

This post is Tested

3 min | by Tomáš Votruba

Today we will look at first Symfony component - Event Dispatcher. Why should you start with it? It gives you flexibility, it is easy to understand and it helps you to write decoupled code.


Chceš psát o PHP? Pošli Pull Request!

2 min | by Tomáš Votruba

Pokud ti v psaní brání to, že nemáš funkční blog, krásný design, velké sociální kruhy pro šíření článků nebo copy-cítění, máme pro tebe řešení - komunitní blog o PHP. Nudnou rutinu nech na nás a v klidu se věnuj psaní.


Podcast Nejen o PHP #3 - Kam kráčí Péhápkaři a jak se můžeš přidat

1 min | by Honza Černý

Komunita stojí na vás, na lidech - vytvořili jste logo, web, soutěžíte a přednášíte a mluvíte o tématech. Jak se můžeš dál zapojit online i offline - to už v dnešním podcastu.


Podcast Nejen o PHP #2 - Blíží se hackatony, spojování sil a růst komunity - buď u toho!

1 min | by Honza Černý

Na podzim se urodilo pár hackatonů, PHP srazů a po půl roce krystalizuje nápad na spojování a růst komunity. Kam směřuje PHP dál a jak nám s tím můžeš pomoct? Poslechni si v dnešním podcastu.


Symfony komunita roste na PéHáPkaře a otevírá se všem PHP programátorům

3 min | by Tomáš Votruba

Symfony komunita mění svůj název, jinak vše zůstane stejné jako dosud. Říkáš si proč? To se dnes dozvíš.


Podcast Nejen o PHP #1 - O sebevzdělávání, školení a mentoringu

1 min | by Honza Černý

Poslední půlrok u nás vzniká spousta možností, jak se vzdělávat v PHP. A zadarmo.

Kdo je pořádá? Proč na ně není takový nával? A jak by tomu mohl pomoc mentoring?

O tom všem se dnes pobavíme.


Kolik lidí je potřeba k vytvoření jedné komunity?

5 min | by Tomáš Votruba

CEO České Symfony komunity. Vedoucí, evangelista, ten co dělá tu Symfony komunitu... Tak mi mnozí z vás občas říkají. Já se však pořád nemůžu zbavit pocitu, že za Symfony komunitou, tak jak ji známe v její dnešní podobě, nejsou vidět ty desítky dalších tváří, na kterých to celé stojí. Tváří lidí, kteří k ní přispěli malým či velkým dílem, kteří mě nakopli, a kteří mi pomáhají víc, než si sami vůbec uvědomují. Bez nich by tady totiž dnes nebylo vůbec nic. A proto bych vám o nich dnes rád řekl.