1.  Naming Convention
    • all small letter for filename
    • class.emailer.php for class file
    • interface.emailer.php for interface
    • abstract.emailer.php for abstract classes
    • class name to be in camel case e.g. class BigData
    • variable names all in small case e.g. $dbname
    • method name to be camel case with first letter to be small e.g. getRecord()
  2. Interfaces defines the methods to be implemented by implementing classes
  3. Abstract class are similar to Interfaces, except abstract class are extended and contains method body.
  4. Abstract method should be overrided in it subclass, and abstract method should not contain any body where it is defined.
  5. Magic methods for Set/Get, __get and __set
  6. Magic methods  for overloading class methods, __call
  7. class_exists(“Emailer”);
  8. get_declared_classes();
  9. method_exists();
  10. property_exists()
  11. is_a($cc, “ChildClass”)
  12. get_class($cc);
  13. __autoload
  14. Method chaining
  15. Object caching using memcache