Puli 1.0-beta10 Released

Today marks the release of Puli 1.0-beta10. This version features the following changes:

  • Added resource versioning.
  • Added improved JsonRepository and OptimizedJsonRepository classes.
  • Added JsonDiscovery class.
  • Fixed PHP 7 compatibility.
  • Fixed Symfony 3 compatibility.
  • Fixed installation and upgrading on PHP < 5.6.

Continue reading to learn more about these changes.

Continue Reading

New Training: Symfony Forms Best Practices

During the last weeks, I have been hard at work to create a new training that has been asked for by many developers. Today, I am proud to finally add the Symfony Forms Best Practices training to my catalog.

This training tries to answer the most fundamental questions about Symfony's form component. I have met many developers that love the component and some who hate it. But all of them had similar questions and doubts that cannot easily be resolved even with the huge amount of documentation Symfony has to offer.

In the training, I apply techniques and methodologies that have proven to be very successful in the past. One example is pair programming, which massively helps both developers in the team: If you explain a concept to your partner, you deepen your own understanding of that concept at the same time. And if you have a very individual question, what you really need is someone who takes the time to give you a proper explanation. That somebody could be your partner. And then there's the trainer who ensures that both of you take away from the training as much as you can.

Another technique that I use is team work. I split the class in teams who work on separate tasks. These tasks can be solved both on the computer and on other media, such as flipcharts. When all teams are finished, we combine and compare their work and discuss the individual solutions. Standing up for a discussion activates your brain and provides a refreshing change from sitting behind a computer. It's no wonder that this technique has also been received very well.

If you are interested in booking the Symfony Forms Best Practices training for your company, get in touch with me. I'm working on offering open trainings in Central Europe soon.

Results of the Puli Coding Night

Last night, the first Puli Coding Night took place. Overall, five people joined, two of which chimed in for the first time. The following tickets were completed:

Furthermore, work on the new Puli installer was started. The installer is based on Composer's installer script and will help you with checking your system for compatibility with Puli and downloading the latest puli.phar. The first version of the installer works already and will soon be available on puli.io. Jump to the installer repository if you want to help working on it.

Puli's Gitter channel was pretty busy. Read the Gitter chat log if you want to catch up on what was being discussed.

For me personally, the night was a full success. I hope to repeat it soon! :)

Media Coverage About Puli

  • Puli

In the previous days, a lot of media coverage about Puli was published. One of the more extensive and interesting articles is Can PuliPHP Re-Revolutionize PHP Package Development? on SitePoint. The article was written by Nicola Pietroluongo, who already covered an overview of the Webmozart Console component in a previous SitePoint article.

Today, Cal Evans published an interview he took with me at the phpkonf in Istanbul. You can listen to the interview on Voices of the Elephant. The interview gives a basic overview over what Puli is, how it started and where I hope that it will be going in the future.

Last but not least, DrupalCon Barcelona published a recording of my talk Puli: PHP's Next Package Revolution. I was ill on the day of the conference, so please bear with me if I couldn't give my best performance. However, I still think it the presentation is interesting for those who couldn't see it live:

Don't forget that tonight is Puli Coding Night! Join us if you want to learn about the project and get involved.

October 9: Puli Coding Night

This Friday, October 9th 2015 at 17:00 GMT (19:00 CEST) we will do a Puli Coding Night! This is the perfect opportunity for you to play with the project, ask questions, discover a new perspective of PHP package development and to start contributing.

If you are in Vienna (Austria) on that night, join us in our office! There will be beer and music. Please let me know in advance if you'd like to come around.

If you are in a different place, get your own drinks and join us on Puli's Gitter Channel.

Looking forward to seeing you! :)

Puli 1.0-beta8 Released

Today marks the release of Puli 1.0-beta8. This version features the following changes:

  • Support for discovering PHP classes in Puli packages.
  • Support for loading bindings that match dynamic expressions.
  • Full Windows support.
  • Support for migrating puli.json automatically.
  • Fixed various bugs in the path-mapping repository.

Continue reading to learn more about these changes.

Continue Reading

Value Objects in Symfony Forms

Many times, Symfony developers wonder how to make a form work with value objects. For example, think of a Money object with two fields $amount and $currency:

class Money
    private $amount;
    private $currency;

    public function __construct($amount, $currency)
        $this->amount = $amount;
        $this->currency = $currency;

    public function getAmount() // ...
    public function getCurrency() // ...

Can you write a form type for this class without adding the methods setAmount() and setCurrency()? In this post, I will show you how.

Continue Reading