Showing posts with label Web development. Show all posts
Showing posts with label Web development. Show all posts

Friday, July 24, 2015

PHP 7

In web development, PHP is one of the most popular and upcoming language. In application/web development, PHP has lot of experts support and development tips from all over world. Last few years PHP development has been increased among many companies.

I have been working in different server scripts last seven years. But I feel, PHP is easiest and fastest development server side script. Last few years I have been using different PHP version like 5.4, 5.5 and 5.6 (Last stable version).

This month (July 2015), they have been released new version of PHP with more enhanced features. This article is just small summary about PHP 7. The following bullet points few feature of PHP 7.
  1. Excellent Performance (PHP 7 is twice fast as PHP 5.6)
  2. Better exception handling. Most of the fatal errors are been converted to Exception.
  3. Deprecated old and unsupported SAPI's and Libraries.
  4. New operator are introduced, Null coalescing operator(??) and Combined comparison Operator(<=>)
  5. Return Type declarations
  6. Scalar type declarations
  7. Anonymous classes has introduced.
So for, they have been introduced Beta version in July 2015. Expecting to launch soon.

Stay tune on to this blog. For more upcoming and interesting news about PHP and its frameworks.

Thursday, May 9, 2013

PHP Magic Methods and Constants

In PHP, We have many features and pre-defined methods to represent our needs. This topic one of the most powerful and precisious element, which we frequently used in PHP.
  1. Magic Methods.

  2. Magic Constants.

  3. Magic QUOTES (magic_quotes_gpc,  magic_quotes_runtime, magic_quotes_sybase) - This feature is REMOVED on PHP 5.4
Magic Methods :

Magic Constants :


Name

Description

__LINE__ The current line number of the file.
__FILE__ The full path and filename of the file. If used inside an include, the name of the included file is returned. Since PHP 4.0.2, __FILE__ always contains an absolute path with symlinks resolved whereas in older versions it contained relative path under some circumstances.
__DIR__ The directory of the file. If used inside an include, the directory of the included file is returned. This is equivalent to dirname(__FILE__). This directory name does not have a trailing slash unless it is the root directory. (Added in PHP 5.3.0.)
__FUNCTION__ The function name. (Added in PHP 4.3.0) As of PHP 5 this constant returns the function name as it was declared (case-sensitive). In PHP 4 its value is always lowercased.
__CLASS__ The class name. (Added in PHP 4.3.0) As of PHP 5 this constant returns the class name as it was declared (case-sensitive). In PHP 4 its value is always lowercased. The class name includes the namespace it was declared in (e.g. Foo\Bar). Note that as of PHP 5.4 __CLASS__ works also in traits. When used in a trait method, __CLASS__ is the name of the class the trait is used in.
__TRAIT__ The trait name. (Added in PHP 5.4.0) As of PHP 5.4 this constant returns the trait as it was declared (case-sensitive). The trait name includes the namespace it was declared in (e.g. Foo\Bar).
__METHOD__ The class method name. (Added in PHP 5.0.0) The method name is returned as it was declared (case-sensitive).
__NAMESPACE__ The name of the current namespace (case-sensitive). This constant is defined in compile-time (Added in PHP 5.3.0).         

Wednesday, October 10, 2012

Full List of PHP Frameworks

A PHP framework can help you to develop web application faster, and it used by many company around the world. Here a list of php framework that avaliable and downloadable, I copy the sort explanation about the framework, you can go to the official site to learn more, so here it goes :

1. CodeIgniter

codeigniterCodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. If you™re a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you™re tired of ponderously large and thoroughly undocumented frameworks.
more on … http://codeigniter.com


2. CakePHP
cakephpCakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. Using commonly known design patterns like MVC and ORM within the convention over configuration paradigm, CakePHP reduces development costs and helps developers write less code.
more on … http://cakephp.org

3. Zend Framework
zend_frameworkExtending the art &amp; spirit of PHP, Zend Framework is based on simplicity, object-oriented best practices, corporate friendly licensing, and a rigorously tested agile codebase.
more on … http://framework.zend.com

4. Symfony
symfonySymfony is a full-stack framework, a library of cohesive classes written in PHP. It provides an architecture, components and tools for developers to build complex web applications faster. Choosing symfony allows you to release your applications earlier, host and scale them without problem, and maintain them over time with no surprise.
more on … http://www.symfony-project.org

5. Yii Framework
yii logoYes, it is Yii ” a high-performance component-based PHP framework best for developing large-scale Web applications. Yii comes with a full stack of features, including MVC, DAO/ActiveRecord, I18N/L10N, caching, jQuery-based AJAX support, authentication and role-based access control, scaffolding, input validation, widgets, events, theming, Web services, and so on. Written in strict OOP, Yii is easy to use and is extremely flexible and extensible.
more on … http://www.yiiframework.com

6. Prado
PRADO is a component-based and event-driven programming framework for developing Web applications in PHP 5. PRADO stands for PHP Rapid Application Development Object-oriented.
more on … http://pradosoft.com

7. Kohana
Kohana is a PHP 5 framework that uses the Model View Controller architectural pattern. It aims to be secure, lightweight, and easy to use.
more on … http://kohanaframework.org/

8. Akelos
The Akelos PHP Framework is a web application development platform based on the MVC (Model View Controller) design pattern.
more on … http://akelos.org

9. Phocoa
PHOCOA is an object-oriented, event-driven, componentized, MVC (model-view-controller) web framework inspired by Apple™s Cocoa and WebObjects technologies.
more on … http://phocoa.com

10. Recess
recessYou should enjoy PHP development. That’s why Recess exists. Recess is a serious PHP framework designed to give you a delightful development experience.
more on … http://www.recessframework.org

11. Seagull
Seagull is a mature OOP framework for building web, command line and GUI applications.seagull Licensed under BSD, the project allows PHP developers to easily integrate and manage code resources, and build complex applications quickly.
more on … http://seagullproject.org

12. evoCore
evoCore is the framework at the heart of the b2evolution blogging application. It is freely available for anyone to use. It is dual licensed so you can choose to use it either under the GNU GPL or the Mozilla MPL license. (b2evo for example is using it under the GPL).
more on … http://evocore.net

13. Qcodo
The Qcodo Development Framework is an open-source PHP 5 framework that focuses on freeing developers from unnecessary tedious, mundane coding. The result is that developers can do what they do best: focus on implementing functionality and usability, improving performance and ensuring security.
more on … http://qcodo.com

14. Agavi
agaviAgavi is a powerful, scalable PHP5 application framework that follows the MVC paradigm. It enables developers to write clean, maintainable and extensible code. Agavi puts choice and freedom over limiting conventions, and focuses on sustained quality rather than short-sighted decisions.
more on … http://www.agavi.org

15. FUSE
FUSE is a Model View Controller framework for PHP. Taking influence from other web frameworks such as Ruby on Rails and CakePHP, then adding in custom, intuitive features of our own design, FUSE has developed into a robust, stable platform for MVC development using object oriented PHP.
more on … http://www.phpfuse.net

16. Horde
hordeThe Horde Framework provides backend-independent interfaces for dealing with preferences, logfiles, MIME, hierarchical data, authentication, data formats, encryption, forms, session handling, file storage, remote procedure calls – and more is on the way.
more on … http://www.horde.org

17. Zoop
zoopFar from being Yet Another PHP Framework or Rails clone, Zoop has been in development since 2001 and in use for the last 6 years in a number of different production environments. While it predates the recent proliferation of PHP frameworks, it’s based on solid MVC principles, including separation of display, logic, and data layers. It’s designed to be efficient, modular, and extensible, striking a balance between lightweight and fully-featured.
more on … http://zoopframework.com

18. PHPWork
phpWork is an event-driven(EDP), component-based framework similar as architecture to ASP.NET. It is part of “The work family” including javawork.org, phpwork.org and flashwork.org. It helps you build php-based websites in a very fast, reliable, safe and well-organized way.
more on … http://phpwork.org

19. Lisa PHP Framework
LisaLISA is an object oriented web application framework based on PHP 5.2 and Smarty template engine. LISA is follows the model view controller architecture.
more on … http://code.google.com/p/lisaframework

20. Orinoco
oriconoorinoco framework is a light full-stack web framework written in PHP5. It is based on MVC architecture and implements the Model 2 design pattern. Its infrastructure helps developers create a clean and maintainable applications.
more on … http://code.google.com/p/orinoco-framework

21. DIY
It is an open-source lightweight web application framework based on object-oriented PHP 5, MySQL, and XSLT. It is fully object-oriented and designed following the MVC architecture and REST design principles. The idea behind it is not to reinvent the wheel but instead to combine existing and proven technologies in a convenient and effective way.
more on … http://www.xml.lt/Resources/Framework

22. ash.MVC
ash.MVC is a simple PHP programming framework proposed by Ash. The basic approach of this framework is to adopt a middle-path approach between faster development cycle, and a robust and scalable application. Moreover, the schemes proposed in the framework stick to the line of simplicity all along.
more on … http://ash-mvc.org

23. SolarPHP
Solar is a PHP 5 framework for web application development. It is fully name-spaced and uses enterprise application design patterns, with built-in support for localization and configuration at all levels.
more on … http://solarphp.com

24. PHPOpenBiz
Want to build a data centric business application without dirty code – PhpOpenbiz (Openbiz) is the solution! OpenBiz is a PHP application framework for professional IT developers and consultants to build web-based enterprise applications.
more on … http://www.phpopenbiz.org/jim

25. PHPonTRAX
phpontraxWant to become a better PHP programmer, cut your development time in more than half, create ultra clean, and easy to maintain, enterprise quality applications, complete with highly reusable code/components? or perhaps you just want to enjoy creating software, instead of tedious, repetitive, boring SQL statements.
more on … http://www.phpontrax.com

26. PHPDevShell
phpdevshellpngTired of complex and heavy PHP based frameworks? Need a web based application to be up and running ASAP? Are you perhaps a sole developer or small team that needs a head start with your new project? If yes, then PHPDevShell is your answer. PHPDevShell as the name suggests provides a Å“shell for your code to run in. It was developed from the ground up to be fast, secure and to provide immediate results for the developer using it.
more on … http://www.phpdevshell.org

27. Madeam
Madeam is a PHP framework for small agile teams and freelancers.
more on … http://madeam.com

28. Limb3
Limb is an OpenSource(LGPL) Library of Interdependent Modules and Blocks mostly aimed for rapid web application prototyping and development with PHP5.
more on … http://limb-project.com

29. PHPCliFramework
more on … http://cliframework.com

30. WASP
more on … http://wasp.sourceforge.net/content

31. PHP for Applications
more on … http://p4a.crealabsfoundation.org

32. Lion PHP Framework
Lion is an emerging open source PHP framework for creating rich web applications as a combination of the most valuable features and patterns taken from the development community.
more on … http://www.lionframework.org

33. Flow3
flow3FLOW3 brings new concepts to the PHP world. Domain-Driven Design, Dependency Injection and Aspect-Oriented Programming are some of them. And besides some great features we offer a new view on the “how” of software development.
more on … http://flow3.typo3.org

34. Adventure PHP Framework
more on … http://adventure-php-framework.org

35. Amhulio
Amhulio is a PHP 5 and MySQL web framework. With the idea of widgets, the design pattern of MVC, and the technology of AJAX, we have created a structural, and extensible architecture for rapid development of interactive and complex web application.
more on … http://www.amhulio.com

36. ATK Framework
atkATK is a special purpose framework, targeted at business applications. It allows you to build an application with very small amounts of code.Its focus on business features makes it an excellent framework for HRM, CRM, data management and CMS type applications.
more on … http://www.atk-framework.com

37. Ambivalence
Ambivalence is a Model-View-Controller framework for PHP web development. Based on the Java-based Maverick project, Ambivalence also offers clean MVC separation and an XML sitemap. Ambivalence provides an optional service to authenticate and enforce access controls upon users, based on the JBoss implementation of the J2EE Java Authorization and Authentication Service (JAAS).
more on … http://amb.sourceforge.net

38. Nette Framework
Nette Framework is a powerful, component-based and event-driven framework for nettecreating web applications and services in PHP 5. Nette Framework is designed with simplicity in mind.
more on … http://nettephp.com/en

39. Andromeda
Andromeda is a programmer productivity tool, our only measure of success is how much we can reduce labor and increase quality. We want to help you to get it done, get it right.
more on … http://www.andromeda-project.org

40. CoughPHP
Cough is an extremely lightweight PHP ORM framework for dealing with objects that have single table counterparts in a database. Cough is built to be easy to learn, use, and extend.
more on … http://www.coughphp.com

41. InterJinn
interJinnInterJinn is an open-source multi-tier framework for web and shell applications using the PHP scripting engine.
more on … http://www.interjinn.com

42. Jelix
Jelix is an open-source PHP5 framework which help you to develop any kjelixind of web applications.
more on … http://jelix.org

43. KissMVC
KISSMVC is a simple and minimalist PHP Model-View-Controller (MVC) framework for rapid development of web applications.
It is designed with the KISS principle in mind, and the entire source code can be read and understood in minutes.
more on … http://kissmvc.com

44. Kolibri
Kolibri is a lightweight, flexible web application framework written in PHP 5. Kolibri’s focus is on providing you with the tools to customize the framework to your liking — from its custom URI mapper and plug-in-based core architecture, to the view technology of your choice. Kolibri flies either way.
more on … https://launchpad.net/kolibri

45. phpPeanuts
more on … http://www.phppeanuts.org

46. PHPulse
PHPulse is the FASTEST PHP based MVC framework in the world! It is built to be phpulseEXTREMELY lightweight and fast with a modular development environment allowing for quick plug-n-play functionality to be added merely by dropping in extra modules.

more on … http://www.phpulse.com

47. Pluf
plufSimple, elegant and easy for people used to Django but in PHP5 so easy to deploy all over the world.
more on … http://pluf.org

48. QCubed
qcubeQCubed (pronounced ‘Q’ – cubed) is a PHP5 Model-View-Controller framework. The goal of the framework is to save the time for developers around mundane, repeatable tasks – allowing them to concentrate on things that are useful AND fun.
more on … http://qcu.be

49. Swat
more on … https://code.silverorange.com/wiki/Swat

50. LightVC
LightVC is a lightweight model-view-controller (MVC) framework without the model. This decoupling allows any model or object relation mapping (ORM) tool to be used, including none at all if one is not needed.
more on … http://www.lightvc.org

51. Tangra Framework
tangraTangra is a LGPL licensed open source framework for development of PHP5 applications. Its main target is to boost the productivity of the developers. It consist code library, modules and control center.
more on … http://www.tangraframework.net

52. TinyMVC
TinyMVC is an Model-View-Controller application framework for PHP. It provides clear separation between the database operations (Model), the presentation (View), and the glue in between (Controller).
more on … http://www.tinymvc.com

53. Flourish
Flourish is The PHP Unframework, an object-oriented PHP library designed to reduce flourishcode and improve security. It™s not an MVC framework and it doesn™t try to solve every problem. Instead, it focuses on being small, portable, well documented and easy to use.
more on … http://flourishlib.com

54. Stubbles
stubblesStubbles is a PHP 5 framework, that combines your favorite features from other programming languages and frameworks. When using Stubbles, it does not force you to use all of its packages, instead you just use the packages you like and combine it with PEAR, the Zend Framework or any other PHP-based framework.
more on … http://www.stubbles.net

55. Atomik Framework
Atomik is a free, open-source, micro framework for PHP5. Atomik is built for small web applications that do not need heavy frameworks but still want powerful features. It is build with the KISS principle in mind as well as speed and security. Atomik is also an ideal introduction for beginners to the world of web development frameworks.
more on … http://www.atomikframework.com

56. Simplicity
Simplicity is a lightweight modular Web development framework. It is designed with a tight core providing and innovative module chain architecture. All framework functionality is provided by modules which can be loaded in module chains and a simple routing interface allows you to direct requests to the appropriate module chain.
more on … http://www.simplicityphp.com

57. DOOPHP
dooDoo framework is one of the fastest, if not the fastest PHP framework available. It enables developers at all levels to rapidly develop robust web 2.0 applications. MVC based, URI routing, Extremely simple, RESTful API, Templating, ORM tool, Clean IP, OOP, Flexible license.
more on … http://doophp.com

58. DragonPHP
DragonPHP is an open source PHP 5 web application framework that is based on the MVC 2(Model View Controller – Model 2) architecture. Key Features: Request Dispatcher, Session Management, Page Controller, Page Flow Routing, Security, Common Logger, Validator, Dynamic Templating, Modules, Database Access.
more on … http://www.dragonphp.com

59. tk_self
more on … http://tkself.org

60. SpotLight
SpotLight is a web application development framework based on Model-View-Controller architecture. Considering influence from framework such as Struts for Java , SpotLight has incorporated the best aspects of such systems of development and became stable MVC platform with object-oriented PHP usage. SpotLight gives a powerful kernel for development MVC based applications with Ajax support.
more on … http://spotlight.cv.ua

61. WEB2BB
WEB2BB is an ultra light, ultra fast, and freely available MVC written in PHP. It does not try to be all things to all people, nor does it even care what other frameworks do. It just provides a simple and easy to use framework for PHP projects.
more on … http://web2bb.com

62. SENCHA
SENCHA is an open-source PHP MVC framework. The framework is none-restrictive, scalable, allows for rapid-development &amp; lets you spend more time building the application and not worrying about building solid foundations. Sencha 2.0 is currently under development! Here you will find documentation, news &amp; tutorials.
more on … http://www.sencha-project.org

63. Bedrock Framework
bedrockframeworkBedrock Framework is a web framework designed around bridging popular APIs
and technologies with PHP. While it has an MVC core with all the functionality expected from a web framework, its primary goal is to simplify the use of other technologies with PHP.
more on … http://www.bedrockframework.com

64. VLC for PHP
VCL for PHP is PHP framework to develop web applications, it’s OpenSource and it’s licensed using LGPL. The framework has been designed to be integrated into an IDE, called Delphi for PHP, which allows you to develop PHP web applications visually with all the benefits of a RAD Integrated Development Environment
more on … http://www.qadram.com/vcl4php/index.php

65. Maverick PHP
Maveric is an extremely simple, lightweight, and flexible MVC framework written in PHP. Check out StoryOfMaveric to see what inspired yet another MVC framework.
more on … http://svn.jamessocol.com/maveric

67. phpHtmlLib
phpHtmlLib is now an application development framework for developing OOP style web applications in PHP. The application framework supports an MVC style architecture, Ajaxable and Cacheable interfaces for developing rich client web applications. It still contains the set of PHP classes and library functions to help facilitate building, debugging, and rendering of XML, HTML, XHTML, WAP/WML Documents, and SVG (Scalable Vector Graphics) images as well as complex html Widgets
more on … http://phphtmllib.newsblob.com

68. BaseBones
more on … http://code.google.com/p/barebonesmvc-php

69. micMVC
micmvcmicMVC is a light-weight application framework for PHP5 that uses the MVC architecture. It attempts to be more lightweight and easy to use than TinyMVC or LightMVC but also includes support for basic testing. micMVC does not require an application framework to be installed on the host computer as an application written using micMVC packages all the necessary framework code with the application. On a personal note I am not a huge fan of PHP but have been forced to use it quite often for various projects as most basic hosting packages offer PHP. I wrote this framework to make life a little less painful for me when having to write PHP code.
more on … http://riftor.g615.co.uk/index.php?action=view&amp;id=22

70. Odin Assemble
Odin Assemble is a small footprint PHP framework designed to help you create and maintain dynamic websites without a content management system.
more on … http://www.odinassemble.com

71. Castle-PHP
more on … http://code.google.com/p/castle-php/

72. MiMVic
MiMViC that embraces the PHP 5.3 and takes a step into future by utilizing the namespaces, lambda functions and minimality. MiMViC is supposed to be super-light weight and programmer friendly framework, thus giving programmer only the most essential tools for programming. Practically speaking MiMViC follows the “KISS Rule” for real!
more on … http://code.google.com/p/mimvic/

73. CIEXtended

CIEX stands for CIEXtended and is based on the popular PHP framework: CodeIgniter.
As CIEX is based on CodeIgniter, it also has an extremely small footprint, in fact probably smaller than CodeIgniter as CIEX has been optimized thoroughly. You should also find that CIEX is easier to use, and more convenient. Some of the missed features in CodeIgniter has been implemented/changed in CIEX, which will make your job (as web developers) more efficient and with ease.
more on … http://ciex.levallois.biz/

74. FAT-FREE
The philosophy behind the framework and its approach to the Model-View-Controller design pattern is towards minimalism in structural components, avoiding application complexity and striking a balance between code elegance, application performance and programmer productivity.
more on … http://fatfree.sourceforge.net/

75. Noloh
NOLOH is a lightweight, on-demand, object oriented Web application development platform. It is ideal for developing feature-rich web sites and web applications faster and with fewer resources. NOLOH extends PHP 5.1+, eliminates the need for HTML and JavaScript, and builds in many advanced features such as codeless AJAX, automatic SEO and a full suite of UI controls.
more on … http://www.noloh.com

76. Vork Enterprise PHP Framework
Vork is an open-source PHP framework designed for rapid development of performance-oriented scalable applications. The mission of Vork is to provide an MVC architecture with a full-featured toolkit and universal database support without adding overhead, creating slow &amp; unscalable abstraction layers or re-inventing native PHP functionality.
more on … http://www.vork.us/

77. KumbiaPHP
Kumbia PHP Framework is a full-stack MVC framework written in PHP for developing database-backed web applications according to the Model-View-Control pattern and other patterns as ActiveRecord and TemplateView. Optimized for PHP programmer productivity.
more on … http://sourceforge.net/projects/kumbia/

78. mgframework
Mangrove aims to be a highly robust product offering new and uniform approaches to existing problems in web application development. In order to use the Mangrove PHP framework at least PHP 5.3 with the mbstring and intl extensions is required. Furthermore, it is highly recommended to utilize a caching mechanism like XCache or APC. Mangrove has been tested and proven to work on both Linux and Windows setups running Apache httpd 2.0+, nginx and lighttpd with no additional php.ini settings.
more on … http://code.google.com/p/mgframework/

79. Lithium
Lithium, the most RAD framework for PHP 5.3+ is focused on quality, speed, and flexibility. It’s a set of no-nonsense philosophies and tools that enable you to build better applications, in less time, without sacrificing quality or extensibility.
Lithium understands distributed storage and caching, queuing systems, micro-dispatch frameworks, with integrated support for document oriented databases like CouchDB and MongoDB, alongside relational databases like MySQL and PostgreSQL.
Lithium’s architecture allows you to get your application up and running quickly, and still allows you to take control of the framework to support the requirements of your application.
more on … http://lithify.me/

added on May 23, 2010

80. Yellow Duck Framework
The Yellow Duck Framework is an object oriented framework that will help you with creating web applications. It’s implemented using the popular PHP web scripting language.
more on … http://ydframework.berlios.de/

81. LightMVC
more on … http://ldos.fe.uni-lj.si/eng/index.php?id=01_Members/15_Marko_Tkalcic/mvc/

82. Ister
The Ister PHP4 Framework is a class library providing a consistent object oriented framework to build web applications. Features are custom logging, database abstraction, encapsulation of HTTP, classes to configure applications, form processing and more. Also included in the framework is an improved version of the templating system t24. The framework is aimed to support the implementation of the MVC pattern for PHP.
more on … http://www.ister.org/code/ister/

83. Sourdough

Sourdough is a comprehensive web application framework for PHP5. Sourdough provides developers with real-world solutions for common system components such as User Management, Session Handling, User Authentication, Exception Handling and Logging, Template System as well as Form Building and Handling. It does also include a database abstraction layer with excellent support for the popular MySQL database as well as support for many other database systems like MSSQL, PostgreSQL, and the new lightweight SQLite.Sourdough’s extensive feature set can also simplify or eliminate many common, and often tedious, programming tasks.
more on … http://sourdough.phpee.com/

84. MagicPHP
MagicPHP is an MVC framework which allows you to build rich, highly sophisticated web applications without ever leaving the PHP code line, giving you more time to focus on what really matters: core functionality.
more on … http://sourceforge.net/projects/magicphp/

85. SimplePHP
SimplePHP is a small, light and versatile framework. It was created by Scott Nicol for use on his own sites, but has been refined and documented for public use. There is currently a documentation and download available, and is under constant development.
more on … http://weareinfinite.net/simple/

86. PSX Framework
psx is a framework for developing dynamic Web sites in PHP. It is completely object-oriented programmed and designed in a modular fashion. All classes in the psx library are independently usable because of dependency injection. It has a focus on social technologies and provides classes to use and implement OAuth, OpenID, OpenSocial, PubSubHubbub, Atom, and RSS. It has a strict separation between code logic and design. The template engine is based on pure PHP, which means speed and flexibility.
more on … http://phpsx.org/

87. Open Delight
Opendelight framework encompasses the multi-tier architecture of web, and enables entreprise-grade web application development really fast and easy.
more on … http://www.adiipl.com/opendelight/

Friday, December 23, 2011

CakePHP vs CodeIgniter

Auth, ACL Component/Library
  • CakePHP has very strong Auth component with Core.
  • In CodeIgniter – you have to create or find a suitable plugin for you, although CodeIgniter has many classes which are rarely used(such as ftp class) i wonder why it’s not there. It’s vary important for the most of the applications.

Code Generation
  • CakePHP’s Bake console can create any of CakePHP’s basic ingredients: models, views and controllers, can create a fully functional application in just a few minutes.

  • Very badly, Codeigniter doesn’t has code generation from console, you’ve to find out a plugin.

ORM
  • CakePHP comes with ORM(Object Relational Mapping is a programming technique for converting data between incompatible type systems in databases and object-oriented programming languages) while in CodeIgniter, you have to depend on third parties.

Scaffolding
  • CodeIgniter’s Scaffolding feature provides a fast and very convenient way to add, edit, or delete information in your database during development which is deprecated from version 1.6.0.
  • CakePHP scaffolding is a technique that allows a developer to define and create a basic application that can create, retrieve, update and delete objects. Scaffolding in CakePHP also allows developers to define how objects are related to each other, and to create and break those links.

Ajax
  • CakePHP comes with Ajax helper which can be used in various ways. i didn’t see this with CodeIgniter core.

PHP Version
  • Both runs on PHP4 and PHP5 but both doesn’t take any facility of PHP5 while runs on PHP5 Machine. CakePHP declared, their upcoming version 2.0 will runs only on PHP 5.2 which definitely take advantage of PHP5′s OOP and ohter killer features.

Simplicity
  • I believe CodeIgniter is simple and working with this, it’s so easy while in CakePHP coding process is quicker for expert but its hard to find out what’s going on For Newbie.

MVC
  • Both of them are MVC supported framework but in Codeigniter you can build your project without Model which may lead messy and unsecured code sometimes(if anybody place direct query without any filtering). 
  • Codeigniter Model supports Method Chaining(PHP5 only) feature that’s fantastic. Most important is Model association, which absent in Codeigniter! In CakePHP, query are very simple to get value from a table by any field with related data.

Console
  • Cakephp came with console features. You can generate code or upgrade db schema from your console. If you are working with a team remotely and you don’t allow other user to handle your db directly – you can use this feature.

  • CodeIgniter doesn’t has this feature.

Validation
  • In Codeigniter, validation is handled by a validation class. The validation class can also help automate some of the process of setting error messages for specific fields.
  • In CakePHP, validation rules are defined in Model, can be validate data before save or at saving. I like CakePHP validation, it’s fantastic.

View/Layout
  • CakePHP handles this fairly well by using a default layout, easy to implement header , footer, sidebar while CodeIgniter takes a very straightforward approach – something like buiding a application from scratch. CodeIgniter allows caching mechanism for your view which is pretty good.

File Uploading
  • I love CodeIgniter’s file uploading class by which it’s very easy to handle uploading files. CakePHP doesn’t has this.

Other Classes
  • Codeigniter has many classes such as ftp, compression, cart etc etc classes. You may need certain classes for your project which already in CodeIgniter and not with CakePHP but you may find out component most of the time.

Web Services
  • Both has web services in built in. CakePHP has REST while CodeIgniter has XML-RPC but both doesn’t has SOAP, you need to find out component/plugin.

Auto Calling Functions/Other Functions
  • In CakePHP, there are few functions which are automatically called every time you refresh/hit a page and executed if you defined them such as beforeSave, afterSave, beforeRender etc – I just love these. I found a function called requestAction in cakephp that calls a controller’s action from any location and returns data from the action, sometimes its very useful.

Helpers
  • I found CakePHP helpers(such as form helper, it highlight input field for validation error automatically) are powerful than CodeIgniter.

Learning Curve
  • The learning curve of CakePHP is slightly higher than CodeIgniter. As CakePHP is a shade of ruby on rails, so its easy to get rails or cakephp developer to get them accordingly.

Support
  • CakePHP has solid support, you will get your answer very shortly while in CodeIgniter, i am still waiting for a answer in CodeIgniter forum, strange!

Documentation
  • Both are well-documented so far.

  • CodeIgniter comes with many classes, less of them are frequently used but missed important classes such as auth, straight forward but no automagic feature, MVC but not strict. I missed these features while i was working on a project using CodeIgniter. You may or may not face few problems while learning CakePHP but once you learnt, I believe – you’ll like it for its automagic, strict convention, faster development and for many more wonderful features.

Saturday, October 15, 2011

10 Programming Languages You Should Learn Right Now


Knowing a handful of programming languages is seen by many as a harbor in a job market storm, solid skills that will be marketable as long as the languages are.
Yet, there is beauty in numbers. While there may be developers who have had riches heaped on them by knowing the right programming language at the right time in the right place, most longtime coders will tell you that periodically learning a new language is an essential part of being a good and successful Web developer.

"One of my mentors once told me that a programming language is just a programming language. It doesnt matter if youre a good programmer, its the syntax that matters," Tim Huckaby, CEO of San Diego-based software engineering company CEO Interknowlogy.com, told eWEEK.

However, Huckaby said that while his company is "swimming" in work, hes having a nearly impossible time finding recruits, even on the entry level, that know specific programming languages.

"Were hiring like crazy, but were not having an easy time. Were just looking for attitude and aptitude, kids right out of school that know .Net, or even Java, because with that we can train them on .Net," said Huckaby.
"Dont get fixated on one or two languages. When I started in 1969, FORTRAN, COBOL and S/360 Assembler were the big tickets. Today, Java, C and Visual Basic are. In 10 years time, some new set of languages will be the in thing. …At last count, I knew/have learned over 24 different languages in over 30 years," Wayne Duqaine, director of Software Development at Grandview Systems, of Sebastopol, Calif., told eWEEK.
By picking the brains of Web developers and IT recruiters, eWEEK selected 10 programming languages that are a bonus for developers to add to their resumes. Even better, theyre great jumping-off points, with loads of job opportunities for younger recruits.

1. PHP


  • What it is: An open-source, interpretive, server-side, cross-platform, HTML scripting language, especially well-suited for Web development as it can be embedded into HTML pages.



  • Why you should learn it: Its particularly widely used. "High-speed scripting with caching, augmented with compiled code plug-ins (such as can be done with Perl and PHP) is where the future is. Building Web apps from scratch using C or COBOL is going the way of the dinosaur," said Duquaine.



  • Job availabilities: 1,152*


  • 2. C#


  • What it is: A general-purpose, compiled, object-oriented programming language developed by Microsoft as part of its .NET initiative, it evolved from C and C++



  • Why you should learn it: Its an essential part of the .Net framework. "Learning C#, which is just Java with a different name plate, is critical if you heavily use Microsoft," said Duquaine.



  • Job availabilities: 5,111


  • 3. AJAX (Asynchronous JavaScript and XML)


  • What it is: Though technically not a programming language, AJAX uses XHTML or HTML, JavaScript and XML to create interactive Web applications.



  • Why you should learn it: Ever since Google Maps put AJAX, well, on the map, the requests for AJAX-knowledgeable pros went through the roof. "The demand for AJAX knowledge is huge because its so damned hard to learn," said Huckaby. Of note, Microsoft announced recently plans to release a tool named Atlas that will make AJAX easier to implement. "If Microsofts Atlas tool is successful, it would bring the extreme complexity and annoyance of AJAX to the average worker," said Huckaby.



  • Job availabilities : 1,106


  • 4. JavaScript


  • What it is: Not to be confused with Java, JavaScript is a an object-oriented, scripting programming language that runs in the Web browser on the client side. Its smaller than Java, with a simplified set of commands, easier to code and doesnt have to be compiled.



  • Why you should learn it: Embedded into HTML, its used in millions of Web pages to validate forms, create cookies, detect browsers and improve the design. With its simplicity to learn as well as wide use, its considered a great bang for your educational buck.



  • Job availabilities: 4,406


  • 5. Perl


  • What it is: Perl is an open-source, cross-platform, server-side interpretive programming language used extensively to process text through CGI programs.



  • Why you should learn it: Perls power in processing of piles of text has made it very popular and widely used to write Web server programs for a range of tasks. "Learning some form of scripting language, such as Perl or PHP is critical if you are doing Web apps," said Duquaine.



  • Job availabilities: 4,810


  • 6. C


  • What it is: A standardized, general-purpose programming language, its one of the most pervasive languages and the basis for several others (such as C++).



  • Why you should learn it: "Learning C is crucial. Once you learn C, making the jump to Java or C# is fairly easy, because a lot of the syntax is common. Also, a lot of C syntax is used in scripting languages," said Duquaine.



  • Job availabilities: 6,164, including all derivatives


  • 7. Ruby and Ruby on Rails


  • What they are: Ruby is a dynamic, object-oriented, open-source programming language; Ruby on Rails is an open-source Web application framework written in Ruby that closely follows the MVC (Model-View-Controller) architecture.



  • Why you should learn it: With a focus on simplicity, productivity and letting the computers do the work, in a few years, its usage has spread quickly. As a bonus, many find it easy to learn.



  • Job availabilities : 210 and 54, respectively


  • 8. Java


  • What it is: An object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s.



  • Why you should learn it: Hailed by many developers as a "beautiful" language, it is central to the non-.Net programming experience. "Learning Java is critical if you are non-Microsoft," said Duquaine.



  • Job availabilities: 14,408


  • 9. Python


  • What it is: An interpreted, dynamically object-oriented, open-source programming language that utilizes automatic memory management.



  • Why you should learn it: Designed to be a highly readable, minimalist language, many say it has a sense of humor (spam and eggs, rather than foo and bar), Python is used extensively by Google as well as in academia because of its syntactic simplicity.



  • Job availabilities: 811


  • 10. VB.Net (Visual Basic .Net)


  • What it is: An object-oriented language implemented on Microsofts .Net framework.



  • Why you should learn it: Most argue that VB.Net is currently more popular than ever and one of the only "must-learns." "It is currently dominating in adoption and that is where all the work is," said Huckaby.



  • Job availabilities: 2,090
  • Wednesday, October 12, 2011

    2011 Top 10 PHP Frameworks – statistics by phpframeworks.com


    Top 10 Hot PHP Frameworks
    Top 10 Ranking PHP Frameworks

    The top 10 Open Source Content Management Systems:


    1. Drupal
    2. WordPress
    3. Joomla
    4. Media Wiki
    5. Liferay
    6. TYPO3
    7. Moodle
    8. Dolphin
    9. Pligg
    10. Movable Type
      1. Drupal:
      Drupal gets the top nod because of its ease of use, vast number of modules, great user, developer, and support community.
      License: GPL
      Programming Language: PHP
      Main advantages: core CMS, Views, CCK, Organic Groups, & huge library of contributed modules.
      Disadvantages: complex, needs more top quality themes, frequent security upgrades.
      Outlook: Huge potential to continue growth and expansion on this platform over time.
      Website: http://www.drupal.org/


      2. WordPress:
      WordPress is a simple and elegant CMS, perfect for single user blogs, with a large number of themes and modules available online.
      License: GPL
      Programming Language: PHP
      Main advantages: Easiest CMS to use, customize, and extend.
      Disadvantages: Lacks many of the social networking functions, ecommerce, forums, wikis, etc. used on more expansive sites.
      Outlook: Best for personal publishing, huge user community, will continue to be the preferred choice of bloggers for years.
      Website: http://www.wordpress.org/


      3. Joomla:
      Joomla has one of the largest user communities of any CMS, everything you need and more to develop social networks, ecommerce, & archive sites.
      License: GPL
      Programming Language: PHP
      Main advantages: Professional standards, internationalization, customization.
      Disadvantages: too many commercial products for Open Source development, difficult to learn.
      Outlook: Strong challenger for the top CMS spot, commercialization of extensions should continue to provide many income opportunities for 3rd party developers.
      Website: http://www.joomla.org/


      4. Media Wiki:
      Media Wiki invented a whole new way of working on the web, and is a CMS for collective authoring of documents, used to power the one of the largest and most popular sites on the internet, Wikipedia.
      License: GPL
      Programming Language: PHP
      Main advantages: If you need a wiki, it is the best.
      Disadvantages: Does not include many other functions / extensions of other CMS platforms, doesn’t theme well, most sites look the same.
      Outlook: Follows the model to success of doing one thing extremely well, has the support of the Wikipedia Foundation, very popular authoring model.
      Website: http://www.mediawiki.org/


      5. Liferay:
      Liferay is a popular new CMS that is great for building portals, and offers a professional look and feel that sets it apart from the other platforms.
      License: MIT
      Programming Language: Java, PHP, Ruby
      Main advantages: collaboration, calendars, internationalization, design.
      Disadvantages: More closely tied to a commercial outlook / corporate structure than most Open Source projects.
      Outlook: Not as well known or implemented as some of the other CMS platforms, but nice design & features to set your sites apart from the crowd.
      Website: http://www.liferay.com/


      6. TYPO3:
      One of the most complex and professional CMS platforms out of the box, TYPO3 is popular for business websites, especially with European companies.
      License: GNU
      Programming Language: PHP
      Main advantages: design, extensions, customizations, flexibility, professionalism.
      Disadvantages: too difficult to learn for most, too many proprietary conventions.
      Outlook: Strong CMS for web development, sure to continue with a core of specialized developers and corporate clients, but loosing support and market share to other platforms.
      Website: http://www.typo3.com/


      7. Moodle:
      Moodle is one of the most unique CMS platforms on this list, designed specifically for Course Management and Education, and used for online learning platforms.
      License: GNU
      Programming Language: PHP
      Main advantages: Huge user and development community, online education, no real competitors or similar products, extremely powerful.
      Disadvantages: not really applicable for most web design purposes.
      Outlook: Look for this “Modular Object-Oriented Dynamic Learning Environment” to continue to be the standard online operating system for education and spawn many interesting mashups with other CMS platforms as well as many more modules & extensions.
      Website: http://www.moodle.org/


      8. Dolphin:
      Boonex Dolphin is popular among web designers who want the latest in social networking, with an industry standard look and all of the features of the popular online communities out of the box.
      License: Creative Commons
      Programming Language: PHP
      Main advantages: Plug-n-Play user community with all the bells & whistles.
      Disadvantages: not really Open Source, must pay to remove ads, requires specific hosting requirements, difficult to install, buggy.
      Outlook: Look for Dolphin to continue to be a popular choice for social networking, though its “cookie cutter” design runs the risk of becoming stale with too many sites implementing the same design.
      Website: http://www.boonex.com/products/dolphin/


      9. Pligg:
      Pligg is a Digg clone that provides social bookmarking functionality for websites, allowing users to post links, vote them up or down, and leave comments.
      License: GPL
      Programming Language: PHP
      Main advantages: Best for Social Bookmarking, can be themed and extended to build top quality sites like Mixx, Redditt, Del.icio.us, etc.
      Disadvantages: difficult to install, mod rewrite problems, poor support on community boards, questionable Open Source future.
      Outlook: With the 1.0 release of Pligg upcoming within a couple of months, look for a big surge of use back to this platform but watch out for increased commercialization.
      Website: http://www.pligg.com/


      10. Movable Type:
      Movable Type is the main challenger to WordPress for a personal blog platform, and supports multiple users, Themes, and Tags.
      License: GNU
      Programming Language: Perl
      Main advantages: Blogs
      Disadvantages: Too closely tied to commercial products and services compared to most Open Source communities, Perl.
      Outlook: Look for MT to fall off the list as other of the blogging platforms below increase in popularity, but sustain development as PR for the company’s commercial offerings.
      Website: http://movabletype.org/

      What’s new in CakePHP 1.2?

      An often heard question is “What are the differences between CakePHP 1.1 and CakePHP 1.2?”. So with this post I try to give you a short overview of the differences between those two versions (if you miss an important change in the list below, please let me know and I will append it). As CakePHP 1.2 is still under development, not all topics listed below are fully implemented yet. And for many topics there is no documentation available yet.

      1. New file extension for view files (.ctp instead of .thtml)
      2. Definition of routes in app/config/routes.php changed a bit (Router::connect instead of $Route->connect)
      3. Integrated test suite
      4. A growing number of core classes are tested (cake/tests/cases)
      5. Three new core components: Auth, Cookie, and Email
      6. Support for DB2, Oracle and Sybase
      7. Support for global Javascript and CSS files (vendors/js resp. vendors/css)
      8. Model behaviors
      9. Three core behaviors: Acl, Translate, Tree
      10. Form related functions have been moved from the HTMLHelper to the FormHelper
      11. Four new core helpers: Js, Paginator, Rss, and Xml
      12. Support for themes
      13. i18n and l10n support
      14. Command line console (bake2 will probably get integrated into this new console infrastructure)
      15. More advanced validation
      16. Dot notation for HtmlHelper and FormHelper (Model.field instead of Model/field), thanks to Dieter@be for the hint
      17. Named arguments (thanks to poLK)
      18. New core classes: Set (thanks to poLK), Debugger, HttpSocket, Socket
      19. More advanced caching facilities. Support for APC, memcache, xcache, file-based and database-based caching

      Tuesday, October 4, 2011

      CakePHP Tutorial - Creating Blog Application


      PART - I



      PART - II



      PART - III



      PART - IV



      PART - V



      PART - VI


      Cakephp application structure

      Cakephp is based on an MVC architecture that is both powerful and easy to understood: Controllers, Models and Views guarantee a strict but natural separation of business logic from data and presentation layers. If I want to enplane by one line, then I will say that, view for the user to see, model for the connection between DB and application and controller is the big boss who controlled everything. Now I want to give some description.

      Controllers contains all of the logic of your application. Each controller can offer different functionality depends on the business logic; controllers retrieve and modify data by accessing database tables through models; and they register variables and objects, which can be used in views.

      Models are active representations of database tables: they can connect to your database, query it (if instructed to do so by a controller) and save data to the database by creating the object of the represented table. It is important to note that in order to correctly apply the MVC architecture, there must be no interaction between models and views: all the logic is handled by controllers. That means a model create a abstract object and maintain the connection with DB. Serve the purpose according to controller to retrieve, save, update and delete data.

      Views can be described as template files or output that present their content to the user: variables, arrays and objects that are used in views are registered through a controller. Views should not contain complex business logic; only the elementary control structures necessary to perform particular operations, such as the iteration of collected data through a foreach construct, should be contained within a view. Throw a view, a user can give input and get output from the application. Its just used for this.

      This architecture can greatly improve the maintainability and the organization of your site’s code:
      1. It separates business logic from presentation and data retrieval.
      2. A site is divided into logical sections, each governed by a particular controller.
      3. When testing and debugging an application, any developer accustomed to CakePHP’s structure will be able to locate and correct errors without knowing all of the details of the code.
      Controllers, models and views are stored in pre-defined directories within CakePHP’s directory structure. Here’s the directory structure that’s used:
      • app/
        • config/
        • controllers/
        • models/
        • plugins/
        • tmp/
        • vendors/
        • views/
        • webroot/
      • cake/
        • config/
        • docs/
        • libs/
      • vendors/
      This directory scheme must be preserved, as it is essential if the framework itself is to work. Cakephp, like ROR, believes in the importance of convention over configuration: in order to deploy an application, rather than modify dozens of different configuration files, it’s important only to place everything in its proper place; then, you can let the framework do the rest.

      Although this may seem worrisome for some developers, it’s a good compromise that can really accelerate the development process.

      CakePHP features Controller, Model, and View classes, but it also features some additional classes and objects that make development in MVC a little quicker and more enjoyable and improve efficiency. Components, Behaviors, and Helpers are classes that provide extensibility and reusability to quickly add functionality to the base MVC classes in your applications.

      Always a developer have to know one thing. Developer create a CONTROLLER for a specific business logic, create models for each DB TABLE and create views for each function if the view is necessary. For view, developer have to create a folder under app/view/ folder.

      Controller Extensions (“Components”):
      A Component is a class that aids in controller logic. If you have some logic you want to share between controllers (or applications), a component is usually a good fit. As an example, the core EmailComponent class makes creating and sending emails a snap. Rather than writing a controller method in a single controller that performs this logic, you can package the logic so it can be shared.

      Controllers are also fitted with callbacks. These callbacks are available for your use, just in case you need to insert some logic between CakePHP’s core operations. Callbacks available include:
      • beforeFilter(), executed before any controller action logic
      • beforeRender(), executed after controller logic, but before the view is rendered
      • afterFilter(), executed after all controller logic, including the view render. There may be no difference between afterRender() and afterFilter() unless you’ve manually made a call to render() in your controller action and have included some logic after that call.
      View Extensions (“Helpers”):
      A Helper is a class that aids in view logic. Much like a component used among controllers, helpers allow presentational logic to be accessed and shared between views. One of the core helpers, AjaxHelper, makes Ajax requests within views much easier.

      Most applications have pieces of view code that are used repeatedly. CakePHP facilitates view code reuse with layouts and elements. By default, every view rendered by a controller is placed inside a layout. Elements are used when small snippets of content need to be reused in multiple views.

      Model Extensions (“Behaviors”):
      Similarly, Behaviors work as ways to add common functionality between models. For example, if you store user data in a tree structure, you can specify your User model as behaving like a tree, and gain free functionality for removing, adding, and shifting nodes in your underlying tree structure.

      Models also are supported by another class called a DataSource. DataSources are an abstraction that enable models to manipulate different types of data consistently. While the main source of data in a CakePHP application is often a database, you might write additional DataSources that allow your models to represent RSS feeds, CSV files, LDAP entries, or iCal events. DataSources allow you to associate records from different sources: rather than being limited to SQL joins, DataSources allow you to tell your LDAP model that it is associated to many iCal events.

      Just like controllers, models are featured with callbacks as well:
      • beforeFind()
      • afterFind()
      • beforeValidate()
      • beforeSave()
      • afterSave()
      • beforeDelete()
      • afterDelete()
      The names of these methods should be descriptive enough to let you know what they do.

      Application Extensions:
      Controllers, helpers and models each have a parent class you can use to define application-wide changes. AppController (located at /app/app_controller.php), AppHelper (located at /app/app_helper.php) and AppModel (located at /app/app_model.php) are great places to put methods you want to share between all controllers, helpers or models.

      Although they aren’t classes or files, routes play a role in requests made to CakePHP. Route definitions tell CakePHP how to map URLs to controller actions. The default behavior assumes that the URL “/controller/action/var1/var2” maps to Controller::action($var1, $var2), but you can use routes to customize URLs and how they are interpreted by your application.

      Some features in an application merit packaging as a whole. A plugin is a package of models, controllers and views that accomplishes a specific purpose that can span multiple applications. A user management system or a simplified blog might be a good fit for CakePHP plugins.