| home | resources | search | news | join | members: 6958 |
Carl | Sun, 2008-10-12 10:45 tags: CMS, Developer Zone, PHP, Tips and Tricks, frameworks, web developer When a person or company decides to use a CMS written in PHP they will eventually run into the situation of needing a good PHP developer that knows the system. Unfortunately in todays climate web developers in the category needed are hard to come by because the higher percentage of CMS systems are not true frameworks. A PHP web framework is a group of code objects, snippets and APIs that allow the rapid building and deployment of a web application. The most important characteristic of a true PHP framework is the allowing the replacement or overriding of the core systems with the developers versions of those systems. Things like being able to override a page dispatcher, menus and template systems are a must have. It is this type of flexibility in web based software that attracts the better web programmers and thus makes finding one much easier. Frameworks usually do not come with all the necessities for building a complete community website like access control or plug-in systems. All of this has to be done by a web developer so many opt to use a CMS as a framework and unknowingly become victims of obscurity. Content management systems are a quick fixThe quick solution for many is to go with a web content management system and use it as a framework. This allows them to be in control of the initial build to a certain extent. When the initial building is completed then the remaining job is to create the pieces that are missing. To do this a PHP developer is needed and has to know the system since in most cases the person doing the initial setup is not a PHP programmer. So this person or persons goes about trying to find help for their particular choice of CMS. What they find is nothing or something less than optimal for their situation. The price tag of hiring a company places them in the position of trying to find a new employee that can handle PHP and can dive right into the project. But the truth of the matter is that out of the 4.5 million reported PHP developers in the world there are very few that have expert knowledge in systems like Typo3, ezPublish, Joomla, Drupal and software from other more obscure PHP CMS projects. Why is this? Well, the answer lies in the making of PHP CMS software. When making a CMS application the goal is usually to the be the most popular and user friendly available. The more user friendly a PHP web application becomes the less developer friendly that system becomes. The difficulty level of learning the system of APIs, becomes high and the loosely typed PHP language is easier to learn in comparison. This means that a PHP developer is more than likely to avoid the system as though it were some type of plague. To make a point you can check the demand for developers of Joomla and Drupal. Have a talk with recruiters and you will find that although there are over 4 million persons doing PHP programming they have a hard time finding just one that knows how to build on Joomla. This type of demand for developers is bad because it is based in the scarcity of PHP developers that can do the work not on the growing popularity of the software. This type of scarcity is increasing as PHP becomes more popular in the business sector. Businesses are adopting open source software to save costs only to find that their savings are being absorbed. Failing the ability to do the work in house they are forced to spend on hiring, consultancy or just dropping the project and starting over with a more well-known commercial software product. The task of filling the void of understanding that involves a CMS that is not developer friendly is difficult. This difficulty is worsened by the fact that many web developers, be they employees, consultants or freelancers might simply disappear after or during a project. Disappearing developersEvery PHP project has them but they become more common in cases where the PHP application starts out being easy to work with in early versions and then later becomes a myriad of files and processes. A freelance PHP developer may take on a job creating new modules or changing them for a CMS only to find out that doing the work was not very pleasing or lucrative. The truth is many developers love doing code from scratch but really hate having to go through someone else's mess to create something. This is especially true when the mess is a moving target like a CMS that changes its code every 6 months to a year. PHP developers also like learning systems where the knowledge can be reused to learn other similar systems. For this reason the programming design pattern MVC has become very popular for web applications. MVC makes good audiencesOne of the nicest parts about the sudden and recent popularity of MVC systems is that once you learn one then learning another becomes easier. This not saying that there are not some very complicated MVC PHP programs out there but learning them is not as difficult if you stick with that type of design. The reason that many PHP developers have stuck with Wordpress and Joomla development but disappear after doing a single Drupal project is because all the time they spent learning Drupal is lost with every version release. Wordpress while going through many versions and changes manages to keep a large percentage of backwards compatibility in the system which allows developers to come up to speed slowly. This accounts for a lot of the stickiness of the PHP developers crowd. Wordpress also seems to manage to remove a lot of the code complication usually associated with giving the end user more usability and extensibility. Though not easy to learn Joomla will remain at the forefront of popularity because once a PHP developer learns the system they have learned something that will last them for years. As of version 1.5 Joomla has moved over to a new MVC framework. By doing this Joomla becomes more attractive by making it less difficult to be a PHP programmer that does Joomla development. If you look carefully you will find that many of the free contributions have not made it from the 1.0 version to the new 1.5 MVC framework. But it is possible to run Joomla 1.5 in legacy mode in order to get the full range of possibilities. The PHP programmers that created components and modules for Joomla 1.0 may not interested in learning Joomla all over again. But their hard work is not lost and they may continue to do Joomla development while learning the new system. New comers to Joomla development will enjoy working with an application designed after the MVC pattern if they are moving laterally from other MVC based software like Ruby on Rails or ASP.NET MVC. Drupal has begun to suffer from a real problem with developers disappearing. The difficulty level of learning Drupal has gone from being trivial in version 4.5 to being next to rocket science in version 6 and 7. So now not only do PHP programmers lose all the knowledge they previously had they also have to learn a hundred new ways to do the same tricks. Drupal suffers seriously from not being able to move developers forward and have them update their contributions to the next version. Because it has a painfully high learning curve, and unlike Joomla there is no "legacy mode" button to push, Drupal is pushing the truly professional web programmers away. With version 7 and the advent of Acquia as a backing company Drupal will soon be moving into the same niche population as Typo3 and ezPublish. Only those with businesses based in Drupal or hardcore fans of the CMS will remain on board. Just as those that have learned Typoscript and ezComponents will tend to stick with those products. While Drupal may suffer from disappearing developers now, many of the other CMS systems of the same ilk have long since locked out many developers with their steep learning curves and obscure code bases. They will never be easy enough for a developer to learn quickly and as a result will become only popular within a small group. They show very little growth in bringing on board new programmers and the user base may be reserved to a few businesses or clients of the open source projects backing company. Both Typo3 and ezPublish clearly have this ailment but there are dozens more that show signs of it. Typo3 is just now discovering that having developers disappear because of the lack of ease in using the CMS as a framework is hurting the project. In the latest versions of Typo3 they the project leaders are making a concerted effort to bring Typo3 down to a level that is comfortable for the average PHP programmer. They are also trying to get back some of the shared hosting market because not being shared host friendly is a certain way of pushing aside thousands of potential users and developers. In other words developers fade from the scene even before trying out the software. What are the alternatives?The most outstanding alternative for businesses and those that are thinking of basing business ideas on using a content management system is for them to go with a commercial product. Commercial products have the backing and system knowledge to create new products, to train present employees or suggest a partner that can handle the needs of end user. Commercial vendors like Bitrix Site Manager are an excellent way to go. Dual licensed software like Epiware is also a good choice. Going with the right product that is dual licensed or backed by a commercial entity is something that may become more popular in the future. Taking this route gives the end user more flexibility in finding solutions to their needs and problems. There may be a problem though in that the commercial aspects of the project may overshadow the attached open source community. This means that purchasing support and training might be easy but finding a freelance PHP web developer for hire or consultation may be very difficult. The trick is to pick software that is built mostly as a framework but can be easily worked in to a full-fledged CMS. Systems like this have a tendency to be used consistently by PHP developers of all levels. True frameworksThe Zend framework and Code Igniter are becoming more popular as more web developers build starter packages and CMS with these PHP frameworks. The businesses that base their projects on these new and upcoming systems will find that their hired consultants and web developers will not disappear as often. This is because the framework itself remains the same over a longer period of time making it more enticing and later on profitable for the web developer to invest time in learning. Previously proprietary systems like SilverStripe which are actually frameworks but come packaged as a CMS are part of a new trend. As more CMS become based on systems like Code Igniter and similar frameworks the number of CMS not following this trend, or making use of the more conventional design patterns like MVC, will die out. CMS built on frameworks like Zend are the future and will soon dominate the open source PHP CMS market. PHP 5.3 and PHP 6The release of PHP 5.3 and then the follow up of PHP 6 will kill a lot of open source PHP CMS projects. This is because PHP web developers will have to spend most of their time learning all the new improvements to PHP. Many popular open source PHP CMS are not designed to give full use of PHP in it's next incarnation. To be able to use PHP 5.3+ tools and features developers may have to give up their beloved CMS or framework and move on to programming from scratch or finding new havens in CMS that are OOP designed and support the use of PHP 5.3 and above. Most will take the opportunity to start learning systems that do not take them too far away from the original PHP code like Zend framework. The five things you can do1. Choose a PHP CMS system that has a code design based on known programming design patterns like MVC. Not only does this help hold on to good and professional PHP programmers but it will make it easier for good programmers crossing over from other programming languages to hit the ground runnning in understanding how system works. The more that a web developer understands about a program the less likely it is that they will jump ship. 2. Stay away from systems that have no backwards compatibility. Failing that you want to pick a CMS system that has a code bases that lasts long periods before major changes cause you to have to upgrade your entire project. You also want to stay away from systems where minor security upgrades are not simple or security only comes with changing to a new major version of the software. Many PHP developers hate coming back to a project that requires hours of reading and research to fix a problem that is caused by tightening security. This is why picking a CMS based on a true framework is a good choice. The backwards compatibility is very strong in such systems. 3. Check out the developer aspects of the online community. What you are looking for is not how many posts there are or even the size of the community but if web developer questions are being answered with code. Code sharing is what allows you to find others that can take over if you developer disappears. Be careful of communities where code questions go unanswered or that are dominated by non-programmers. Web developers will not come back to a community where their questions go unanswered for days and weeks. If the software is solidly designed and flexible with good community support then you will have no problem finding a great PHP developer in the crowds of developers that will flock to the projects website. One thing to watch out for is if the community is busy but mostly with non-development activities. This means that finding a developer will be difficult. Not many programmers are interested in looking at pretty pictures and talk if they don't lead to the source code and documentation. Good programmers tend not to be cheerleaders and they challenge and present solutions when ever possible. If you don't see this type of activity on a CMS project forum or mailing list then stay away. 4. Don't be fooled by the hype and popularity of something and showboating. Many large companies will go with a CMS because they have the resources to make sure that the projects succeed. They could litterally make good things happen using a pile of pigs and ice. Hype is when the name of the pile is used as a reference because of copyright laws but in actuality their end result looks nothing like what you have to use. Also remember that there are literally hundreds of CMS software projects. Some more popular than others but also some that are less popular but better designed and better documented. You want to look for consistent backing, maintenance and updates of the add-ons that you need to get going. If they are not updated or maintained properly then you and your chosen developer may have the problems with using the CMS later in your projects. 5. Choose the developer before you choose the system. If you find it hard to get people on board for your project using a particular CMS then there is good reason for this happening. Web developers are notoriously curious and it is very likely that the developer you choose has tried a few CMS. If they are worth anything they have tried lots of them, looked at the code and made a decision on the quality of the software and the project behind it. If they say they have never used an open source CMS and have built their own because theirs are better then stay away. If you do hire or trust this person they may do well in learning the system using your project after you have chosen the CMS. But they may also start injecting strange things in to the code when they become frustrated by the fact that they have to do things a certain way. The likelihood for a web developer to disappear in a situation like this increases. In the end there will always be people that will take advantage of you and others. But following some of these guidelines will reduce the chances of that happening significantly. A good rule of thumb to use is that all of the software is written in PHP code. If someone cannot explain to you how that code works and why things happen or at least find out. Then they are not the one or the use of the chosen CMS is not something you want to become involved in.
Ten years of experience in web development. Carl is looking for in employment as a Senior PHP/mySQL Developer in Stockholm. Carl McDade - Systems Developer Thoughtbox - So what did you think? |
Joomla! London Hotels
Adobe Flex Silverlight Laptop Reviews
Adobe Flex Content Management Systems Just Dial International Calls
Silverlight Excel Training Courses
Joomla! excel courses in london
Content Management Systems Data Recovery
|
||||||||
NewsletterGet updates on Hiveminds services, articles and downloads by signing up for the newsletter. |
Editor's choiceSome of the better articles, stories and tutorials found at Hiveminds. |
Find moreFind more of Hiveminds articles, stories, tutorials and user comments by searching. |
Picked linksHand picked websites and articles from around the web that provide quality reading. |