- PeterMoulding.com
- Author
- Trainer
- Speaker
- Business Coach
- How to write a How To book
- PHP Courses
- Speaking
- Web Architect
- Australia
- Books
- Authors
- Akkana Peck
- Alex Berenson
- Andrew Nugent
- Ben Sanders
- Brock Clarke
- Chris Simms
- David Mercer
- Dianna Mullet
- Don Winslow
- Dori Smith
- Harlan Coben
- Jack McDevitt
- James Wines
- Jerry Yudelson
- John Grisham
- Kevin Mullet
- L. E. Modesitt Jr.
- Laurell K. Hamilton
- Marshall Karp
- Martina Cole
- Michael Marshall Smith
- Michel Roux Jr
- Nadia Sawalha
- Philip Pullman
- Raymond Khoury
- Richard North Patterson
- Robert Masello
- Sally Roth
- Sarah Langan
- Stella Rimington
- Stephen Booth
- Stephen King
- Stephen Leather
- T.C. Boyle
- Tom Negrino
- Tony Hillerman
- Urban Waite
- Val McDermid
- Valerio Massimo Manfredi
- Beginning GIMP
- Beginning Visual C++
- Culturalism
- Fiction
- A Drink Before The War
- A Talent for War
- Bag of Bones
- Blood and Ice
- Burn
- Dark Lady
- Dead Line
- Eclipse
- Empress of Eternity
- Exley
- Flipping Out
- Just One Look
- Nightfall
- Pet Sematary
- Savage Moon
- Skinwalkers
- Starvation Lake
- The Fallen
- The Gardens of the Dead
- The Jump
- The Last Templar
- The Mermaids Singing
- The Midnight Mayor
- The Secret Soldier
- The Summons
- The Terror of Living
- The Testament
- The Tower
- Under the Dome
- Virus
- AJAX and PHP
- Aging with Grace
- Food books
- Green Architecture
- Life Is So Good
- SQL: The Complete Reference
- The Backyard Bird Lover's Ultimate How-to Guide
- The Garden Gurus
- Authors
- Sustainability
- -18 hours left to decide the future of Australia
- Campbells vegetable stock or Massel vegetable stock?
- Carbon Sequestration
- Carbon tax for Australia is a fraud
- Copenhagen will fail
- Cost of living in Australia
- Dick Smith jumps on the population bandwagon
- Dry Run: Preventing the Next Urban Water Crisis
- Energy Saving Lights
- Garlic
- How many people can live in Australia?
- Its obsolete, throw it out!
- Julia Gillard offers 9.9 billion dollars bribe to Rob Oakeshott
- Laundry detergent
- Petrol or Diesel?
- Reflective foil batts kill
- RoHS
- Sea level to rise 3mm due to climate change
- Solar power
- Spring again in Sydney
- Sustainable fuels
- The CRUD Tax is back
- The people who make building regulations do not own houses
- Water efficiency
- Which insulation is safer, foil or wool?
- Will Australia reduce greenhouse gas emissions?
- Technology
- Android or Blackberry or iPhone or a flip phone?
- Apple versus Google 2011
- Cameras
- Cars
- Colour
- Burgundy
- Colour Blindness
- Colour Names
- Dulux colours
- Pantone colours
- Safe Colours
- Seculine ProDisk Mini colour balance card
- What Causes Colour Blindness?
- Hardware
- Batteries for the Digital Age
- Cables
- Cases
- Computer reliability
- Computrace
- Disks
- Astone ISO Gear 481E
- Best SSD for your notebook computer
- Disk block size
- Hitachi disk HDS722020ALA330
- LaCie USB 2.0 250 GB mobile hard drive design by F.A. Porsche
- SMART disk
- Samsung 2 TB HD204UI quiet low power disk for mass storage
- Seagate and Samsung merge disk business
- Select the right disk for your RAID array
- USB disk speed
- Western Digital WD20EARX 2 GB SATA 3 disk
- How long should computer hardware last?
- Keyboards
- Mainframe
- Memory cards
- Monitors
- Netbooks, notebooks, tablets, and xPads
- Network Attached Storage
- OLED Displays
- PC's are a thing of the past
- Printers
- Quiet
- Samsung Galaxy S
- Speed
- Television
- Tools
- USB
- Worst computer movies
- Xserve is dead. What next?
- Your backup will not work
- Z68 motherboards
- iPad or Acer Aspire One?
- IQ
- LG Intello Washing Machine
- Lack of a challenge
- Networks
- 802.11n wireless networking
- D-Link DIR-655 wireless router
- D-Link DWA-160 Xtreme N dual band USB adapter
- D-Link DWA-556 Xtreme N PCI Express desktop adapter
- MIMO
- NBN spends another $12 billion of our tax money on nothing
- National Broadband Network
- Netgear wireless modem router DGND3300 with 300 Mbps 802.11n
- Refrigerator kills wireless broadband
- Small Wireless Network
- TP-LINK TL-SG10005D 5 port gigabit switch
- TP-Link TL-WR1043N wireless N gigabit router
- Telstra Pre-paid Mobile Wi-Fi
- Where are the router plus proxy server combinations?
- Open Source documentation
- Software
- 7-zip
- Accounting
- Asterisk
- Audacity
- Backup software
- Bloat only in Windows
- CAD
- CDex
- Disk imaging software for copying and backup
- Exact Audio Copy
- Filezilla
- Firefox
- Java
- LibreOffice or OpenOffice?
- Linux
- 1 in 5 servers will ship with Linux
- Android phones outsell iPhone
- Another Move to Linux
- CentOS 5.5 installation on SSD and RAID 5
- Debian
- Debian 5.0.5 AMD64 installation
- Debian 5.06 installation
- Fedora
- Fedora or Ubuntu?
- Gnome or KDE?
- K9copy
- Linux 2.6.38
- Linux Gnome login settings lost
- Linux Mint
- Linux RAID, a rant
- Linux Speed
- Linux Time
- Linux reliability as demonstrated by Ubuntu 10.10
- Linux reliability as demonstrated by Ubuntu 11.4
- Linux still a struggle in 2011
- Linux workstation disk RAID 1
- Linux, NT, Windows, and SETI
- Linux, three years of progress
- London Stock Exchange switches to Linux
- Mandrake Linux 9.2
- The partition is misaligned by 48128 bytes - warning from Linux RAID
- Ubuntu
- How to fix the scroll bars in Ubuntu 11.4 Gnome
- Kubuntu 10.10 alternate installation on desktop with RAID 1
- POWbuntu
- Ubuntu 10.10 after 6 months use
- Ubuntu 10.10 alternate installation
- Ubuntu 10.10 desktop RAID 1
- Ubuntu 10.10 desktop RAID 5
- Ubuntu 10.10 desktop install on a netbook
- Ubuntu 10.10 desktop installation
- Ubuntu 10.10 netbook install on a netbook
- Ubuntu 10.10 server AMD64
- Ubuntu 10.10 upgrade to version 11.4 beta 2
- Ubuntu 10.4
- Ubuntu 11.10
- Ubuntu 11.10 first upgrade
- Ubuntu 11.4 after one month use
- Ubuntu 12.04 beta1 desktop amd64
- Ubuntu One
- Ubuntu by Microsoft?
- Ubuntu desktop upgrade 10.4 to 10.10 failed because I did not check the media
- Ubuntu strikes again
- Upgrade Ubuntu to Linux Mint 12 LDXE for extra speed
- Yes, use Linux but not that distribution!
- Nero
- OpenOffice
- OpenOffice is now Apache Office
- Project management
- Scribus
- Software for Windows and Linux
- Text editors
- Time
- Todo applications
- Tomboy notes
- Top text editors
- Version control
- VideoLAN VLC media player
- Visio
- Webmin
- Webmin installation on CentOS for Web development
- Webmin installation on Ubuntu
- What is the most popular open source software today?
- Windows
- Another Windows person goes Linux
- BAD_POOL_CALLER
- Cygwin
- Microsoft Malicious Software Removal Tool cannot find a common virus
- One of the developers of Windows XP is criminally insane
- There are unused icons on your desktop
- W32time
- Which Windows version?
- Windows 7 Home Premium
- Windows XP Stop 0x0000007B during installation
- Windows XP is a disaster
- Windows processes
- XML
- Zip, bzip, gzip, or 7zip?
- configFree
- Technology Succession Planning
- VoIP
- Web Sites
- Drupal
- Do Drupal themes have to use the GPL?
- Drupal 7
- A better search facility for Drupal
- Drupal - performance or flexibility
- Drupal 7 Fields are hard to fix
- Drupal 7 new features
- Drupal 7 ships on January 5
- Drupal 7.14
- Drupal 7.4 hits PeterMoulding.com
- Drupal function sequence
- The evolution of a module
- Undefined index: headers in DefaultMailSystem->mail() (line 54 of /modules/system/system.mail.inc).
- Undefined index: to in DefaultMailSystem->mail() (line 83 of /modules/system/system.mail.inc).
- implode(): Invalid arguments passed in DefaultMailSystem->format() (line 23 of /modules/system/system.mail.inc).
- Drupal 8
- Drupal Code Load Cut
- Drupal How To
- Drupal Modules
- Backup and Migrate
- Browscap
- CKEditor with Drupal WYSIWYG
- Captcha
- Cel
- Colorbox
- Content Construction Kit
- Content type
- Devel module for Drupal
- Drupal Rules as an automation language
- Drupal Spam add-on module
- Form alter to node
- IMCE
- IMCE Wysiwyg bridge
- ImageAPI
- Jdog
- Lightbox2
- Module variable
- Node Gallery Access
- Node_Gallery
- Path
- Path redirect
- Pathauto
- Pet
- Search
- Service links
- Session Variable
- Statistics
- Taxonomy
- Token
- Token ex
- Transliteration
- Trigger
- Watch
- Other modules
- Drupal Training
- Drupal access controls need a major rewrite
- Drupal coding tricks
- Drupal performance
- Drupal themes for the future
- Drupal.org colours
- Import existing data into Drupal
- Multiple Web sites made easy using Drupal multisite and the right start
- drupal_lookup_path()
- Adobe PDF
- Apache
- Apache Mahout
- Audi.com
- Bleet
- CSS Strikes Again
- CSS or xCSS
- Can you believe Facebook or email?
- Content Management Systems
- Databases
- Facebook scam
- Font
- Fonts
- HTML
- Install Apache, MySQL, and PHP 5 in Ubuntu 11.4 using the Ubuntu Software Centre
- Language Codes
- Marketing
- Memcache
- Nginx
- Open source development hits another roadblock
- Oscars
- PHP
- SPDY
- Search software
- Techoni.com.au
- Theme themes
- Things to hate on Web sites
- U.S. Patent No. 6,985,875
- Virtual Private Server
- Visible Improvement
- Web 4.0
- Web browser usage
- Web browsers
- Web site development
- Bluefish
- Crying over spilt code
- Eclipse and PHP
- Getting a Git client, a story of ancient technology and pain
- HTTrack
- MVC
- Netbeans
- PHP or ..., CakePHP/Symfony/ZF versus ...
- Programming
- Superfish
- Web browser emulators for testing your Web site
- Web development frameworks
- Web site books
- Web site development on your own computer
- Webmin or phpMyAdmin or cPanel for creating databases?
- aiki framework
- jQuery
- Views development - Learn Fields first
- Views development - Learn Actions and Rules
- jQuery .each()
- jQuery .has()
- jQuery .is()
- jQuery and Firefox Firebug
- jQuery children
- jQuery for people not using Drupal - Installation and getting started
- jQuery hover
- jQuery hover de-duplication example
- jQuery or CSS?
- jQuery performance
- jQuery tests
- Web site hosting
- Westpac Web site still broken after two years and ten months
- Wordpress wins another CMS survey
- Drupal
Web development frameworks
Submitted by Peter on Tue, 2010-07-06 21:17
CakePHP, CodeIgniter, Symphony, and Zend are popular Web development frameworks. What do they do? When do you use them? Here is the Who, What, When, Where, Why, and How of Web development frameworks.
Who
Name some frameworks. CakePHP, CodeIgniter, Symphony, and Zend. Who uses them?
CakePHP
I looked at the CakePHP brag list and only one one small Mozilla site appeared to be of any importance. I did not find any aspect of any site that could not be created easily using any of the major content management systems. Some of the major features of the sites did not work reliably or consistently, indicating a CakePHP site does not automatically get reliable or tested code.
CakePHP is still stuck in PHP version 4 at a time when PHP is close to moving from version 5 to version 6.
CodeIgniter
CodeIgniter has a better Web site for anyone looking through frameworks trying to work out what the frameworks do. CodeIgniter promise fast performance and many of the sites on their brag list had slow performance. CodeIgniter is still stuck in PHP version 4 at a time when PHP is close to moving from version 5 to version 6.
Do you know of a CodeIgniter web site demonstrating something you would not get through any other framework or a decent CMS?
Kohana
Download Kohana from kohanaframework.org. Kohana is an interesting framework with a lot of good ideas and it has at least one big user. The code appears to be overly complex. There are not many examples online. Some show difficult Java style coding, the sort of thing that makes Java projects take three times longer than PHP based projects.
Simplicity of coding makes extensions easier and more reliable because you know what the code will do when you write it. There are some complexities you add to stop add-on modules damaging the base system and data. Kohana adds those complexities plus Kohana adds other complexities that appear to be there only for style. When you are stuck with Java, you have to perform some simple tasks in complex ways because you are restricted to working with objects. PHP provides simpler mechanisms for simpler tasks but Kohana appears to emulate the complex Java approach, wasting processing time, and making coding harder.
Kohana examples and tutorials frequently show functions placed in classes then used as stand alone functions. You could simplify Kohana by coding functions as functions instead of artificially adding them to classes.
Do you use the PHP PEAR libraries to build whole Web sites? You might find Kohana the better choice because of better integration and easier installation. The learning curve could be higher because Kohana documentation is limited.
Sapphire
Sapphire is the framework within SilverStripe. You can use Sapphire without SilverStripe but the documentation is almost non existent. You have to install SilverStripe to see how Sapphire works.
Symfony
Symfony claims to be the most popular framework. Symfony is up to date with PHP, placing it ahead of CakePHP and CodeIgniter.
Zend Framework
Zend produce several PHP related products and used together, they make sense. Their Zend Framework is probably the least useful of the lot. Fox use Zend Framework for several large sites. Back when Fox started on those sites, the Zend Framework offered flexibility and performance they could use across many related sites. A development time and cost comparison today would not be so clear cut.
What
Frameworks provide a set of PHP classes and some sort of starter set of code to get you up and running. You then add your own code plus sets of additional downloadable code libraries or modules. There is a lot of work to do before you get to the equivalent of a basic Content Management System to run your first Web site.
I followed the CakePHP documentation for starting to build a Web site. The initial steps reminded be of CMSs from 5 years ago. Once you use a good CMS, you will find it hard to step back so many years.
When
Very large sites benefit from the extreme optimisation you might be able to achieve a framework. If you use one Web server, a framework will not save you the extra cost of development. A Web site running across several servers can be optimised using many different techniques and all those techniques are usable with good modern CMSs. A framework starts to give you useful savings when you use many servers, dozens or more, and expect to expand rapidly.
Four years ago when some of today's big sites were on the drawing board, CMSs had performance overheads limiting their large scale expansion. The leading CMS, Drupal, has rapidly improved performance and flexibility. Where you might have used a framework for a site running on 5 servers, you would now keep using a CMS up to 10 or 20 servers.
Today the servers are also several times faster. If a few years ago you had a site on 5 servers and were looking at 20 servers today, the increase in server speed might mean you are still on only 5 servers.
Where
Geographical dispersion of sites does not need a framework because a good CMS handles geography, multiple languages, non Latin characters, and right to left text presentation. There is no need to move away from a CMS based on location.
In some countries where hardware is really expensive compared to the revenue earned from a Web site and programming labour is really cheap, you might consider trimming hardware costs by using a framework and keeping your Web site lean. In most cases you are better off using a good CMS to quickly give you extra features to increase the revenue earned.
Why
Using a framework is similar to a decision to use Java instead of PHP. Some people have limited knowledge of the best approach and recommend only what they learned in school. Some developers realise Java requires more developers than PHP and recommend Java to create job security. If their boss is too smart to use Java, they recommend a framework ahead of a CMS because a framework creates more development work.
You have to invest a lot of money, time, and people into a framework based project to get to the same place you would arrive at months earlier with a good CMS. After you reach that point, you might have a chance to save something through a framework that is not as easy with a CMS. To make that decision, you need a lot of experience with the framework and the add on libraries for the framework. You need a big project to make significant savings by trimming little bits of the result using a framework instead of a CMS.
If your big project has a long development time, there is the real possibility that the leading CMSs will gain all the features you want before you can develop the equivalent using a framework.
How
You set up a Web server or a hosting account for your framework exactly the same as you would for a CMS based Web site. Almost everything is exactly the same. You would use Symphony or Zend Framework because CakePHP and CodeIgniter are stuck back in PHP 4. You follow an installation procedure that is a manual equivalent to the automated Drupal installation.
Other approaches
RadPHP is commercial and a development environment, not a framework. RadPHP talks about a framework. The framework appears to be pre built selectable modules that work together similar to a framework. Think of Zend Studio supplied with the Zend framework pre installed. The problem is spending AU$400 on RadPHP then finding out your customer uses a different framework.
Zend Studio is a set of development and debugging tools. Zend also have a framework competing against PHP PEAR library of pre built code. Zend keep the two separate so you can use the framework without the other tools. When you do put them together, they work together as a nice combination. You can also use Zend Studio with another framework.
Eclipse is a big development environment where you can plug in a lot of bits for project management, code editing, and other things. You can plug the Zend editor into Eclipse and use the Zend framework, or a different framework, on your next project. I have not tried this and I welcome feedback if you have tried it, Eclipse is project oriented and a project can contain a lot of settings, possibly with the option to assign a different framework to each project, giving you the ability to manage a team working on several projects with different frameworks for each project.
Conclusion
Content management systems make Web site development easier than using a framework and there are times when you want more flexibility or performance. Big media companies use frameworks for a few high traffic sites and the Drupal CMS or equivalent for all their other sites. Based on over 200 projects, a framework beats a CMS in less than 10 cases and usually when you want to use a mixture of databases.








