Manuel Lemos is the founder of PHPClasses and an active member of the PHP community. He has been involved in programming since the 1980s. He is a speaker, a programmer, and a writer who works on different scripts and has been contributing to the PHP community since 1997.
In his interview with Cloudways, Manuel talks about the beginning of his career, how he started PHPclasses.org and gave his tips on migrating to PHP 7. He also discussed his workflows. Last, but not the least, he recommends a CMS for beginners to start on.
Cloudways: Manuel, it was very nice of you to find time for this interview! To kick things off, could you please tell our readers how your career started and how you managed to become such an exceptional software engineer?
Manuel: Thanks for having me as an “exceptional” part, I hope this interview is helpful for your readers.
I started programming in the 80s when I was just a teenager using 8-bit computers from the Sinclair ZX Spectrum family, which were very popular in Europe back then.
When I was 18, I successfully ported an arcade video game to these 8-bit computers with a couple of friends, but at the time, we did not have any commercial success. Still, I had my 5 minutes of fame when I was invited for an interview on the national TV show that had a section on computer games.
That was when I decided to not develop computer games because I wrongly assumed that the market was not taking games as a serious business. Nowadays, the gaming industry is even larger than the movies industry.
Later, I moved on to Commodore Amiga computers. I even published a commercial title with the help of a British friend but soon after that, Commodore went bankrupt.
I used to develop and code in C language a lot. Only after I graduated as an Electronics and Telecommunications engineer, I discovered PHP when it was in its initial version 2 back in 1997. For me, it was like a dream because PHP was like C but it was interpreted, instead of compiled, so I could be more productive and try my PHP code very quickly just by editing the source and reloading the browser page. Since then, I only worked with PHP on the server side.
Cloudways: How did the PHPClasses begin? What is your favorite PHP class?
Manuel: PHPClasses began after PHP 3 was released. It introduced basic Object Oriented Programming support to PHP, which made it much better for creating reusable components.
I wanted to share my PHP components, so other people could try them to report bugs and suggestions. I looked around for sites that allowed users to register, so I could keep track of which users downloaded what components. It enabled me to notify my PHP component users when a new version is released.
I also wanted to get as much exposure as possible for my new components when they were released.
Since I did not find a good site that was fulfilling this purpose, I created my own repository. Later, I opened it for others to submit their own packages and also benefit from the exposure the website gives to their work.
By then, SourceForge already existed. It allowed developers to manage projects with version control system support. Nowadays, we have GitHub, but you know, if you just drop your work there and do not make any marketing effort, nobody will be aware of what you did that could become useful for others.
Hosting projects in GitHub is a good idea but I always recommend that you spread your Open Source work in as many websites as possible including PHP Classes and others, so more people can become aware of it.
I do not have a favorite class but most of the packages nominated for the PHP Innovation Award are really amazing.
Cloudways: You give out innovation awards for the best packages. So, what are the criteria for selecting a package for the award? Is there a voting or something?
Manuel: Any nominated package must be innovative, I mean it must do something that no other packages previously published did or it takes an entirely new approach. Every month all innovative packages published are nominated. Then the users vote for them. When the results come out, every nominee can pick a prize, starting from the first place.
Now, we also provide an elePHPant as prize personalized with a band and the winner name. That prize is chosen by many winners because the elePHPant became an important symbol of PHP.
Cloudways: What development workflows and tools do you use for your projects? Briefly, share the strategy you follow for meeting the project deadlines!
Cloudways: PHP 7.0 and 7.1 have been released and the support for PHP 5.x has been terminated. What major changes have you observed in the new PHP versions? What changes should be introduced in PHP to make it faster and better optimized? What tip would you give to developers for upgrading their website(s) to PHP 7.x?
Manuel: PHP 7 series is much faster than PHP 5 series. Recently, Christian Vigh published a detailed article on the evolution of PHP performance from PHP 5, PHP 7.0, PHP 7.1, as well a preview of what can be the next PHP version probably PHP 7.2 or PHP 8, using the JIT engine that is being developed by Dmitry Stogov and his team at Zend. PHP 7.1 is 27 times faster than PHP 5.0 for pure CPU tasks and gives very interesting PHP performance data.
Strict type hinting for all PHP data types was also a big advance of PHP 7.0. It enables individuals to become capable of detecting bugs by enforcing types of values passed to functions, and at the same time not hurt the performance of PHP code, especially in production.
On the backward incompatible changes, the most important was the discontinuation of the MySQL extension. The hope is that PHP developers write more secure database access code using prepared statements with the mysqli or PDO extensions.
I see a lot of PHP developers looking for solutions to migrate their code because their hosting companies dropped PHP 5 support, especially since the end of life of PHP 5.6 that happened by the end of 2016. If you are in a rush to find a quick solution, Dave Smith has written a tutorial on how to migrate PHP mysql code to use mysqli.
He has even created a package that provides a replacement for mysql functions using mysqli extension. Previously, Aziz Hussain wrote a similar package, but for replacing the mysql functions using PDO. Both packages were considered innovative and are used by many developers that did not yet migrate their code to MySQL or PDO.
Cloudways: What framework and CMS would you recommend to a beginner for kickstarting projects?
Manuel: As I mentioned above, I use mostly my own development methods that do not require a specific framework, but I always recommend that you use a library of classes or frameworks that make you more productive and enforce good programming practices.
As for the CMS, I do not use any other CMS, but by far WordPress is the most popular PHP-based CMS system thanks to its huge ecosystem of plugins and themes. WordPress made website designing possible for non-programmers and programmers alike. Millions of websites are run by non-programmers who benefit from the knowledge of many PHP developers.
I understand that many PHP developers do not quite like WordPress due to its roots on procedural programming. But, we should not forget that WordPress made it possible for many developers to run profitable businesses by providing plugins and themes to a huge market.
Soon, I will be releasing a SaaS tool that will allow you to optimize your Web sites using business intelligence to determine which pages have the greatest opportunities to be optimized with keywords that the tool will suggest you as well. This tool will have WordPress integration by the means of a custom plugin.
Cloudways: When did you start developing your interest in conferences? In your opinion, is attending conferences advantageous or a waste of time? How did you feel when you were debuting as a conference speaker?
Manuel: Attending conferences can be a great mean to learn a lot more about technology, as well meet people from whom you can learn a lot about matters related to your work in general, not just programming.
Attending PHP specific conferences, it is often nice but it also takes a lot of time to travel and be present at the venues. If you enjoy traveling and have plenty of time, it may be good to attend conferences for the reasons I mentioned above. Once in awhile, I attend events to which I am invited often to talk, but nowadays it is mostly related to software business and less about PHP.
Cloudways: How would you compare MongoDB, Firebase and other databases with MySQL? What do you think mobile app developers should use as their database engine?
Manuel: I cannot talk much about MongoDB because I do not use it. For my purposes, MySQL always suited me well. And even for higher scale applications, there are MySQL compatible solutions that provide you the scalability you need.
Cloudways: Who would you recommend to follow within the PHP community? Who has influenced your PHP career?
Manuel: I would recommend following PHP core developers. Those are the ones that focus on the language features. They have very in depth knowledge on resolving PHP lower level matters that determine how the language is implemented.
Cloudways: How you spend your time when you are not working?
Manuel: That is a good question. I work at home, so I am always close to my family. That is one of the privileges of working on my own business. Regularly I swim and watch movies but those are probably the few things I do unrelated to software.
Cloudways: Manuels, we always ask developers to share their workstation image as an inspiration for the readers.
Cloudways: What do you think about managed hosting solutions like Cloudways, that provide an optimized PHP stack with features to help developers kickstart their web projects? We would love it if you could test the Cloudways Platform and give us your valuable feedback.
Manuel: Managed hosting can be wonderful when you need to scale your applications when they do not fit a single server. There is plenty of knowledge out there on the Web you can use to learn how to assemble all the required parts to implement a scalable solution but having it done by somebody that is in the field for many years is often worth the investment of outsourcing that effort.
Start Creating Web Apps on Managed Cloud Servers Now!
Easy Web App Deployment for Agencies, Developers and E-Commerce Industry