الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Dao Generator For Php And Mysql

بدأه العيافـي في 2 نوفمبر 2009 · 4 رد · 850 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

قمت مؤخرا بانشاء برنامج صغير استخدمت فيه

السكريبت http://www.phpdao.com/ لاتصال وتنفيذ اوامر قاعدة البيانات .. وفعلا استفدت من هذا السكريبت بحيث وفر علي الكثير من الوقت

كما سهل علي ترتيب الكود.

اتمنى ان يفيدكم ..

#2

:unsure: :unsure:

ما فيه رد ... هل هذه السكريبت قديم ... و لا يحتاج الى توضيح :hmm: :hmm:

#3

تحياتي اخي

بصراحة انا اول مرة اسمع عنه

هل يمكن توضيح طريقة عمله

هل هو فريم ولك ام برنامج لتوليد الاكواد ام ماذا ؟

hope is not a plan

----------------

#4

وظيفة السكريبت انشاء اصناف بي اتش بي للاتصال بقاعدة البيانات

قمت بانشاء مثال بسيط لاستخدام السكريبت ارجوا ان يوضح الفائدة من السكريبت.

المثال:

اولا هذا هو السكريبت (phpdao-2.1) و ما يحتوية من ملفات

post-82434-1257261118_thumb.gif

ثانيا الملف ConnectionProperty

الموجود تحت المجلد phpdao-2.1\templates\class\dao\sql

يحتوي على اعدادات قاعدة البيانات (اسم المستخدم و كلمة المرور ..الخ)

بفرض ان لدي قاعدة بيانات باسم TestDB وتحتوي على جدول باسم city كما هو موضح في الصورة

post-82434-1257261046_thumb.gif

سأقوم بتشغيل الملف phpdao-2.1/generate.php الذي سيقوم بانشاء الملفات التالية تحت المجلد generated

post-82434-1257261564_thumb.gif

الملف الاول وهو يمثل الجدول City

<?php

	class City{

		var $id;
		var $name;
		var $note;
	}
?>

والملف الثاني ويحتوي على اوامر SQL

/*
 * Class that operate on table 'city'. Database Mysql.
 *
 * @author: http://phpdao.com
 * @date: 2009-11-03 18:06
 */
class CityMySqlDAO implements CityDAO{

	/**
	 * Get Domain object by primry key
	 *
	 * @param String $id primary key
	 * @return CityMySql 
	 */
	public function load($id){
		$sql = 'SELECT * FROM city WHERE id = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->setNumber($id);
		return $this->getRow($sqlQuery);
	}

	/**
	 * Get all records from table
	 */
	public function queryAll(){
		$sql = 'SELECT * FROM city';
		$sqlQuery = new SqlQuery($sql);
		return $this->getList($sqlQuery);
	}

	/**
	 * Get all records from table ordered by field
	 *
	 * @param $orderColumn column name
	 */
	public function queryAllOrderBy($orderColumn){
		$sql = 'SELECT * FROM city ORDER BY '.$orderColumn;
		$sqlQuery = new SqlQuery($sql);
		return $this->getList($sqlQuery);
	}

	/**
 	 * Delete record from table
 	 * @param city primary key
 	 */
	public function delete($id){
		$sql = 'DELETE FROM city WHERE id = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->setNumber($id);
		return $this->executeUpdate($sqlQuery);
	}

	/**
 	 * Insert record to table
 	 *
 	 * @param CityMySql city
 	 */
	public function insert($city){
		$sql = 'INSERT INTO city (name, note) VALUES (?, ?)';
		$sqlQuery = new SqlQuery($sql);

		$sqlQuery->set($city->name);
		$sqlQuery->set($city->note);

		$id = $this->executeInsert($sqlQuery);	
		$city->id = $id;
		return $id;
	}

	/**
 	 * Update record in table
 	 *
 	 * @param CityMySql city
 	 */
	public function update($city){
		$sql = 'UPDATE city SET name = ?, note = ? WHERE id = ?';
		$sqlQuery = new SqlQuery($sql);

		$sqlQuery->set($city->name);
		$sqlQuery->set($city->note);

		$sqlQuery->setNumber($city->id);
		return $this->executeUpdate($sqlQuery);
	}

	/**
 	 * Delete all rows
 	 */
	public function clean(){
		$sql = 'DELETE FROM city';
		$sqlQuery = new SqlQuery($sql);
		return $this->executeUpdate($sqlQuery);
	}

	public function queryByName($value){
		$sql = 'SELECT * FROM city WHERE name = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->set($value);
		return $this->getList($sqlQuery);
	}

	public function queryByNote($value){
		$sql = 'SELECT * FROM city WHERE note = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->set($value);
		return $this->getList($sqlQuery);
	}


	public function deleteByName($value){
		$sql = 'DELETE FROM city WHERE name = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->set($value);
		return $this->executeUpdate($sqlQuery);
	}

	public function deleteByNote($value){
		$sql = 'DELETE FROM city WHERE note = ?';
		$sqlQuery = new SqlQuery($sql);
		$sqlQuery->set($value);
		return $this->executeUpdate($sqlQuery);
	}



	/**
	 * Read row
	 *
	 * @return CityMySql 
	 */
	protected function readRow($row){
		$city = new City();

		$city->id = $row['id'];
		$city->name = $row['name'];
		$city->note = $row['note'];

		return $city;
	}

	protected function getList($sqlQuery){
		$tab = QueryExecutor::execute($sqlQuery);
		$ret = array();
		for($i=0;$i<count($tab);$i++){
			$ret[$i] = $this->readRow($tab[$i]);
		}
		return $ret;
	}

	/**
	 * Get row
	 *
	 * @return CityMySql 
	 */
	protected function getRow($sqlQuery){
		$tab = QueryExecutor::execute($sqlQuery);
		return $this->readRow($tab[0]);		
	}

	/**
	 * Execute sql query
	 */
	protected function execute($sqlQuery){
		return QueryExecutor::execute($sqlQuery);
	}


	/**
	 * Execute sql query
	 */
	protected function executeUpdate($sqlQuery){
		return QueryExecutor::executeUpdate($sqlQuery);
	}

	/**
	 * Query for one row and one column
	 */
	protected function querySingleResult($sqlQuery){
		return QueryExecutor::queryForString($sqlQuery);
	}

	/**
	 * Insert row to table
	 */
	protected function executeInsert($sqlQuery){
		return QueryExecutor::executeInsert($sqlQuery);
	}
}

تم تعديل هذه المشاركة بواسطة العيافـي في 3 نوفمبر 2009 في 18:26

2
#5

و الكود التالي طريقة استخدام الملفين السابقين

 include_once("dao/include_dao.php");

            // لاضافة مدينه
            $cityMySqlDAO=new CityMySqlDAO();
            $city=new City();
            $city->name= $name;
            $city->note= $note;
            $cityMySqlDAO->insert($city);


            // لعرض معلومات مدينه بواسطة رقم ID
            $cityInfo=$cityMySqlDAO->load(1);

            // لجلب قائمة المدن 
            $citiesArray=$cityMySqlDAO->queryAll();

كما توجد الاجراءات الاخرى للتعديل و الحذف و الاستعلام بواسطة احد الاعمده ... الخ

ارجوا ان اكون استطعت التوضيح و اي سؤال انا جاهز بما اعلم

هذا السكريبت الذي تم انشاءة و قاعدة البيانات

src.rar

تم تعديل هذه المشاركة بواسطة العيافـي في 3 نوفمبر 2009 في 18:40

1

مواضيع مشابهة