Tuesday, 27 September 2011

Want to be a web developer? (part 4)

Open Source

Okay, so now you want to do more coding! Most of the time you are probably going to be amending an existing application rather than starting from scratch. Whenever anyone asks me for an application, I always look for an open source php solution first - mainly so I don't have to reinvent the wheel.

Of these Content Managment Systems are by far the most popular applications for websites. They are perfect for end users to manage their website without anyone techy having to do it for them. The techy bit comes from installing and making modifications. The end user can modify the content - this is very important for marketing, nobody knows their business like the business owner - so let them manage the content. Also SEO likes lots of content, especially lots of new content.

I would suggest downloading JoomlaDrupal and Wordpress to your /var/www folder. eg /var/www/joomla, /var/www/drupal, /var/www/wordpress. There are installation instructions for each. Usually you create a database, extract the zip and browse to the folder.


Once installed, create a project for them in Netbeans. This will then give you an idea of coding of a large project. There are plenty of other open source systems other than CMS (I'll add links later - I've plagerised this list, I think most of them are php and there are others missing from the list)

Blogs: b2evolution, Nucleus, pMachine Free, WordPress, Pixelpost, Life Type
Content Management Software (CMS): Drupal, Drupal7, Concrete5, Geeklog, Joomla, Mambo Open Source, PHP-Nuke, phpWCMS, phpWebSite, Post-Nuke, Siteframe, Typo3, Xoops, ocPortal, MODx, Moodle, e107, Zikula, Geeklog, Mahara, phpwcms, Hotaru CMS, Textpattern, Surus CMS
Customer Support/Chat Software: Crafty Syntax Live Help, Help Center Live, osTicket, PerlDesk, PHP Support Tickets, Support Logic Helpdesk, Support Services Manager, phpFreeChat, Vtiger CRM,   SugarCRM, 
Discussion Boards: phpBB2, Simple Machines Forum (SMF), bbPress, MyBB, Advanced Electron Forum, PunBB
E-Commerce: CubeCart, OS Commerce, Zen Cart, Open Cart, Magento, PrestaShop, TomatoCart, PhpCOIN
Social Networking Software: Pligg, Jcow
FAQ: FAQMasterFlex, phpMyFAQ
Hosting Billing: phpCOIN
Image Galleries: 4images Gallery, Coppermine Photo Gallery, Gallery, Zenphoto, Piwigo,
Mailing List: PHPlist, poMMo, Dada Mail
Polls and Surveys: Advanced Poll, phpESP, PHPSurveyor, LimeSurvey
Project Management: PHProjekt, dotProject, Mantis Bug Tracker, PHP Guest Book
Site Builders: Templates Express
Wiki Software: PhpWiki, TikiWiki CMS/Groupware, WikkaWiki, PmWiki
Other Scripts: Dew-NewPHPLinks, Moodle, Noahs Classifieds, Open-Realty, phpAdsNew, PHPauction, phpFormGenerator, WebCalendar
Other Software: Z-Push, Elgg, OpenDocMan, Sitebar, Churchinfo, Lazarus
There are others missing from the list... If you are looking for something particular then just google "open source" and the name of the application you are looking for.

PHP Frameworks

Here's where it gets interesting... A framework allows you to concentrate on the actual development, letting the framework to do most of the repetitive work for you. This is rapid application development. Frameworks tend to be used for web applications rather than web sites - the distinction is that websites are like portals for the world to see, a web application is usually created for specific purpose and requires a login. For example, an accounts package. A framework also has the advantage that other developers can take it over if they are familiar with the framework.

There are plenty of PHP frameworks to choose from, but the main ones are ZendSymfonyCakephpCodeigniterKohana and Yii.

I've tried them all - Zend is by far the most popular but I like Yii the best. Its simpler than Zend and Symfony, very quick to run and install, really solid code. It has a small but loyal following.

Netbeans can be setup for code completion most of the frameworks including Yii

No comments:

Post a Comment