-
Notifications
You must be signed in to change notification settings - Fork 0
Object Oriented Programming
languages like java are purely OOP
PHP is a scripting language that has a bit of HTML, OOP and logic
Basic OOP
Drupal started at a time when object oriented programming ...
- Polymorphism
- Abstraction
- Encapsulation
- Inheritance
Glossary
Class - An encapsulation of some functionality
Subclass - An extension to a base class that inherits the base classy functionality but adds more
Property - A property of a class that represents a value
Function - Some logic that either modifies a property or returns some value
Exercise
<?php
//base class
class Shape {
declare the base class. Other classes can be declared within this with different values
const SHAPE_TYPE = 1;
protected means that the value cannot be changed
private means that the value can be changed but it can't be accessed directly.
interface is an abstract class....
In an object oriented programming a class is like a template or/ boiler plate for an object. An object in an instance of a class. The class doesn't exist until the an instance or the object is created.
So for example

In this synth keyboard app developed by Peter, if I were to explain it's construction using classes then:
The base class or parent class would be the keys.
The class instances or objects would be the different types of keys, so the properties would have arguments for the position, pitch/sound etc
OOP is much cleaner and maintainable way of programming. 60 years ago, only functions were written to perform tasks but now this new structure has improved the efficiency of programming.
Examples of how to refactor classes
<?php
// Single Responsibility Principle Violation
class Report
{
public function getTitle()
{
return 'Report Title';
}
public function getDate()
{
return '2016-04-21';
}
public function getContents()
{
return [
'title' => $this->getTitle(),
'date' => $this->getDate(),
];
}
public function formatJson()
{
return json_encode($this->getContents());
}
}
