- Beranda
- Komunitas
- Tech
- Website, Webmaster, Webdeveloper
[Share+Source Code] Implementasi OOP + Design Pattern PHP


TS
badycool
[Share+Source Code] Implementasi OOP + Design Pattern PHP
Dear All. optimis ah...pasti pada sepi yg komeng 
![[Share+Source Code] Implementasi OOP + Design Pattern PHP](https://dl.kaskus.id/s17.postimage.org/fqs7bygan/oop2.jpg)
Ane mau share lagi....iseng" ada yg request buatin CRUD sederhana dengan PHP dengan OOP + Design Pattern (No Framework yah).
Kalo di bahas satu" lama kaliii...jadi ane point aja konsep, apa" aja isi code nya.
Install : buat database namanya Tes, terus import fil sql nya
Login : username : admin, pass : admin
Download Source Code

![[Share+Source Code] Implementasi OOP + Design Pattern PHP](https://dl.kaskus.id/s17.postimage.org/fqs7bygan/oop2.jpg)
Quote:
NOTE :ini u/ yg lgi dan mau belajar yah, yg udah dewa OOP nya adem" aja

Ane mau share lagi....iseng" ada yg request buatin CRUD sederhana dengan PHP dengan OOP + Design Pattern (No Framework yah).
Kalo di bahas satu" lama kaliii...jadi ane point aja konsep, apa" aja isi code nya.
Spoiler for struktur:
![[Share+Source Code] Implementasi OOP + Design Pattern PHP](https://dl.kaskus.id/s12.postimage.org/u13f76rct/oop.jpg)
Spoiler for Class:
Ada banyak Class yg udh di Buat, Salah satu nya Class
Class :
ane pusing nulisnya.....ente sedot aja dah File nya,,,oprek sendiri
Class :
- Db.php : Ini Class Untuk Active Record Database manipulasi, pake konseop design pattern Adapter
- Iterator.php : Class ini memanfaatkan Native PHP class Iterator untuk Fetching Data dri database,
- dbConnect.php : Class ini untuk Koneksi ke database ,pake konsep Design Pattern Singleton ,
- Pagination.php : untuk paging
- Factory.php : class ini untuk menerapkan konsep Design Patern Factory..(Load class" + buatin Object nya)

Spoiler for Contoh Code Class Iterator:
PHP Code:
<?php
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'dbConnect.php';
Class Iterate implements Iterator{
protected $_query;
protected $_result = array();
protected $_numResult = 0;
protected $_pointer = 0;
protected $_sql = 0;
protected $_mode;
protected $_conn;
function __construct($sql,$mode=NULL){
$this->_sql = $sql;
$this->_mode= $mode;
//echo $mode.$sql;
}
//reset pointer ke 0
function rewind(){
$this->_pointer = 0;
}
// return pointer terkini
function key(){
return $this->_pointer;
}
protected function _getQuery(){
if(!$this->_query){
$this->_conn = dbConnect::getConnection();
$this->_query = mysql_query($this->_sql,$this->_conn);
if(!$this->_query)
print('Error : '.mysql_error().' '.$this->_sql);
}
return $this->_query;
dbConnect::closeConnection();
}
protected function _getNumResult(){
if(!$this->_numResult){
$this->_numResult = mysql_num_rows($this->_getQuery());
}
return $this->_numResult;
}
//memvalidasi pointer current ada elemen nya
function valid(){
if($this->_pointer >=0 && $this->_pointer < $this->_getNumResult()){
return TRUE;
}
else{
return FALSE;
}
}
protected function _getRow($pointer){
if(isset($this->_result[$pointer])){
return $this->_result[$pointer];
}
$row = NULL;
if($this->_mode=='result'){
$row = mysql_fetch_object($this->_getQuery());
}
elseif($this->_mode=='result_array'){
$row = mysql_fetch_array($this->_getQuery());
}
if($row){
$this->_result[$pointer] = $row;
}
return $row;
}
function next(){
$row = $this->_getRow($this->_pointer);
if($row){
$this->_pointer++;
}
return $row;
}
function current(){
return $this->_getRow($this->_pointer);
}
}
Spoiler for Code Db.php:
PHP Code:
<?php
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'dbConnect.php';
Class Db {
protected $_connAccess;
protected $_conn;
protected $_connClose;
protected $_sql;
protected $_op = array('>','<','!=','>=','>=','<>');
public function __construct(){
$this->_conn = dbConnect::getConnection();
$this->_connAccess = dbConnect::cekInstance();
}
function includeIterator(){
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'iterator.php';
}
public function execute($sql){
$exe = mysql_query($sql,$this->_conn);
if(!$exe)
exit('Error : '.mysql_error().':'.$sql);
else{
return $exe;
dbConnect::closeConnection();
}
}
public function getRow(){
mysql_fetch_object($this->execute());
}
function insert($table,array $data){
$sql = "INSERT INTO ".$table." SET";
foreach((array) $data as $field=>$value){
$sql.= " ".$field." = '".mysql_real_escape_string($value)."',";
}
$sql = rtrim($sql,',');
$this->execute($sql);
}
function update($table,$data,$where=NULL){
$sql ="UPDATE ".$table." SET ";
if(is_array($data)){
foreach((array) $data as $field=>$value){
$sql.= " ".$field." = '".mysql_real_escape_string($value)."',";
}
}
$sql = rtrim($sql,',');
$sql.=" WHERE 1=1 ";
if($where){
if(is_array($where)){
foreach((array) $where as $field=>$value){
$sql.=" AND ".$field." = '".mysql_real_escape_string($value)."' ";
}
}
else{
print('Error, WHERE clause is not an array');
}
}
//echo $sql;exit;
$this->execute($sql);
}
function get($table){
$sql = "SELECT * FROM ".$table." WHERE 1=1 ";
if($sql){
$this->_sql = $sql;
}
return $this;
}
function query($sql){
if(!empty($sql))
$this->_sql = $sql;
return $this;
}
function result(){
$this->includeIterator();
return new Iterate ($this->_sql,'result');
}
function resultArray(){
$this->includeIterator();
return new Iterate($this->_sql,'result_array');
}
function num_rows(){
$data = $this->execute($this->_sql);
return mysql_num_rows($data);
}
function getRows(){
$data = $this->execute($this->_sql);
return mysql_fetch_object($data);
}
function getWhere($table,$where=NULL){
$this->includeIterator();
$sql = "SELECT * FROM ".$table." WHERE 1=1 ";
if($where){
if(is_array($where)){
foreach((array) $where as $field=>$value){
/* agar where sesuai kemauan User let's do this. */
$op_pos= $field." = ";
foreach ((array)$this->_op as $op){
if(strpos($field,$op)!==FALSE){
$op_pos = $field;
}
}
$sql.=" AND ".$op_pos." '".mysql_real_escape_string($value)."' ";
}
}
else{
print('Error, WHERE clause is not an array');
}
}
//echo $sql;
if($sql)
$this->_sql=$sql;
return $this;
}
function delete($table,$where=NULL){
$sql = "DELETE FROM ".$table." WHERE 1=1 ";
if(!empty($where)){
if(is_array($where)){
foreach((array) $where as $field=>$val){
$op_pos= $field." = ";
foreach ((array)$this->_op as $op){
if(strpos($field,$op)!==FALSE){
$op_pos = $field;
}
}
$sql.=" AND ".$op_pos." '".mysql_real_escape_string($val)."' ";
}
}
else{
print('Paramater is not array, make it array first');
}
}
$this->execute($sql);
}
}
Install : buat database namanya Tes, terus import fil sql nya
Login : username : admin, pass : admin
Download Source Code
Diubah oleh badycool 30-11-2012 13:56
0
4.2K
Kutip
12
Balasan


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan