# My knowledge of PHP

By way of introduction let me start by saying that my hope in this course is to freshen up my understanding about the basic introduction to object oriented development in PHP. I wrote my first line of PHP in 2011 and very soon after that wrote my first paid extension called [Cost Benefit Projection](https://github.com/namibia/CBP-Joomla-2-Component) for [Joomla](https://www.joomla.org/) which I only published on GitHub in 2014. Which means I wrote my first fully object oriented project in 2013, and have been programming in PHP every working day since. So I would consider my proficiency to be very high, that most of the core developers in Joomla will consider my input valuable in any area of development in Joomla.

When you look at my [CV online](http://vdm.io/llewellyn), you will see that I did many Lynda.com (today Linked-In Learning) courses and also many Udemy courses during those early years. 

The only real struggle I have is a lack of time... period. My greatest efforts has, for the last 8 years, been to bring down project development time, while maintaining perfection and simplicity. So, in a way I have achieved much of with the [Joomla Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) (JCB) project, since what would have taken me months to develop in 2015, will now only take me hours, or at most days. Which brings us to the next most frustrating problem, which is the constant change within Joomla and the PHP world at large. Other then C++, we see in PHP the constant willingness to change things, which breaks old projects and cause more work. So much so that the basic promise of OOP is lost. I mean, we want to build applications that does not break when we improve other parts of the system. Yet it does, and at times the change is so dramatic that it requires a whole rewrite, instead of trying to salvage the project by means of just updating it. Toward this we have also started taking steps in JCB to resolve this issue in the world of Joomla at least.

As I mentioned in the introduction, I am not sure if I will learn any new things... would be nice. But I am willing to be content in a good refresher that helps me value these basic steps of PHP’s approach to many of the industry principles of good design.

Looking at my [profile on GitHub](https://github.com/Llewellynvdm) you will see that I have many PHP projects and to be honest those are just the ones I am willing to give away for free. I have far more private projects on my own [self-hosted git](https://git.vdm.dev/) repository where all my clients and other personal projects are maintained. So I use PHP everyday as stated before.

PHP is the language I consider as my mother tongue in programming. I can code multiple classes and really work for hours without an IDE (no code hinting) or running any code, and 80% of the time it just works, or is missing one character at most.

But I can't spell, so for spelling I heavily rely on spellcheckers and other help to ensure it's correctness, and this is the only thing that makes it hard for me to code in public. I can also not type that fast... strange as that may sound... compared to other programmers with my skill level, I am very slow.

**References:**

- “Joomla Content Management System (CMS) - Try It! It’s Free!” Joomla!, https://www.joomla.org/. Accessed 27 Mar. 2022.
- “LinkedIn Learning with Lynda: Online Training Courses for Creative, Technology, Business Skills.” LinkedIn Learning with Lynda: Online Training Courses for Creative, Technology, Business Skills, https://www.linkedin.com/learning/. Accessed 27 Mar. 2022.
- “Llewellynvdm - Overview.” GitHub, https://github.com/Llewellynvdm. Accessed 27 Mar. 2022.
- “Online Courses - Learn Anything, On Your Schedule.” Udemy, https://www.udemy.com/. Accessed 27 Mar. 2022.
- van der Merwe, Llewellyn. CBP-Joomla-2-Component. 2014, https://github.com/namibia/CBP-Joomla-2-Component. github.com.
- ---. Joomla Component Builder. v2.12.15, 2016, https://github.com/vdm-io/Joomla-Component-Builder. github.com.
- Vast Development Method, VDM. “Git.” Vast Development Method, https://git.vdm.dev/. Accessed 27 Mar. 2022.

