What's Going On
I’ve learned a thing or two over the years when working as a developer. I love sharing what I’ve learned. It might even help you.
I’ve learned a thing or two over the years when working as a developer. I love sharing what I’ve learned. It might even help you.
Yesterday we had the second remote workshop from this year. It was about application architecture. What surprised me was that some knowledge I picked up the past years turned out to be wrong.
Recently I changed my GitHub account name and converted my old username to an organization. My important projects are now nicely grouped into that organization and not hidden between all forked projects.
It was back in 2016 I formatted my laptop for the first time and swapped to Ubuntu. Since then I’ve been re-installing between Windows 10 and Ubuntu every few months.
Back in 2013, I started this blog based on Jekyll. A static generated site, hosted on GitHub pages. It did its job good and was ok to work with. Later on, in 2015, I got involved with zend-expressive.
Bare with me, I’m just starting with CQRS. I’ve got an application running with DDD, CQRS and even Event Sourcing. I think I did a good job because everything seems to be working.
I’ve followed some guides on how to setup PhpStorm with docker-compose but I never got it to work. I decided to start from scratch and forget about all the guides.
zend-expressive does not come out of the box with a console for handling cli commands. However it’s easy to add this and make full use of the container and its dependencies.
Yesterday I wrote about using one ActionFactory for all your PSR-7 actions. I used zend-servicemanager for it, together with some voodoo to detect the dependencies and inject it. I was pretty happy with the solution and then I got this:
I know, it’s better to write factories in stead of magical dependency injection. But some people are lazy, me included, when it comes to repeating code over and over. In this case I’m talking about zend-expressive actions.
Updated with support for PSR-11 Container Interface and use the new 2016.2+ PHPSTORM_META format. For a long time I’ve been wondering how to make code completion work in PhpStorm for dependency containers.
NOTE: This post was written in the time there was no good solution available to add Doctrine to Expressive. Fortunately there is container-interop-doctrine. It makes setting up Doctrine a lot easier.
This guide is a mix of several other guides and my own experience. I’m just writing this down altogether so I can easily find the right commands. Setup forked project Clone your forked project:
There was a time we had to write complicated-hard-to-maintain Shibboleth bundles to get it working with Symfony. I did as well back in the Symfony 2.4 days. Fortunately since Symfony 2.
PHP middleware is growing fast these days. One of the nicest features is that you can mix and match different packages from different frameworks or even use standalone packages. For dependency containers this is now really easy if they implement the ContainerInterface.
Force LF line endings instead of CR+LF Stage changes and new files Commit changes Fix last commit Pull before push Push changes Forced merge Handling merge conflicts Cherry picking Renaming tags Deleting branches Stashing uncommitted changes Unstage files Resetting files Cleanup tracked files (after editing .
Git workflow works best for large projects. For smaller projects or projects with little commits and releases I suggest to use something lightweight like GitHub Flow. Versioning Commit Messages Feature Branches Release Branches Hotfix Branches This guide is based on a successful git branching model.
Two years ago I ran into Grunt and started using it as my preferred build tool. The more I used it and the bigger the projects became, the more I screamed for a better tool.
Sometimes you wonder if you forgot to commit and push changes. And if you are working on several projects at the same time you just don’t know which ones. With this small batch script you can check the current directory and all sub directories for changes that still need to be committed or pushed.
There are some really good continuous integration servers out there which you can should use. Well known are Travis CI and Jenkins. I had a look at those but they seemed to be a hassle to setup.
Some functions that are available for selenium. Setup // Set the browser that Selenium will launch $this->setBrowser(String $browser); // Set the base URL. All paths in $this->url() calls are relative to this.
Updating TeamSpeak 3 I’ve got TeamSpeak installed in /opt/teamspeak3/server and its running as teamspeak.
What I tried to achieve is having a content table with the different content types in it. Sort of like WordPress. The idea is that you don’t want to add all pages and blog posts to your routing table manually.
I read a twitter post today about the lack of rss feeds on blogs. Then I realized this one was missing it too. Google is your friend and pretty fast I found an example.
After upgrading to Symfony 2.4 I got PHPUnit errors. I’m not sure what exactly changed, but the session is not initialized automatically. An extra check is needed: <ul class="list-unstyled container js-notifications"> {% if app.
Learn about GitHub pages. Learn about Jekyll. Setup a basic GitHub pages site. Play with Travis CI. Builds failed! Nothing about that in any how-to-build-your-jekyll-blog-in-3-minutes guide. After some digging it seem that you need to add exclude: ['vendor']
to the ``_config.