کمک در نوشتن کلاس از نوع (فکر میکنم میگن) انتضاعی

zoghal

Active Member
سلام بر اساتید اهل فن

راستش دنبال یک روش کلاس نویسی در پی اچ پی هستم که به این صورت استفاده میشه
PHP:
$db->select(args)->delete(arg)

لطفا نوع این گونه کلاس ها و روش پیاده سازیشون رو درصورت امکان توضیح بدید
 

yakoza

Well-Known Member
منظورت اینه که از یک شی دو تا متد فراخوانی کنه ؟
 

zoghal

Active Member
والا سیستم کاریش رو نمیدونم واسه همین سوال کردم

فقط فکر میکنم یجور کلاس در کلاس فراخوانی میشه در ظاهر
 

zoghal

Active Member
والا چند وقت پیش دنبال یک سری کتابخانه برای وصل شدن به دیتابیس های مختلفی بودم که بهم یکی از این کتابخانه ها رو معرفی کردن که تو مثالاش اینطوری کارکرده بود اما الان هیجی یادم نمیاد
 

saidshp

Member
فکر میکنم برای دیتابیس بیشتر از این روشها استفاده میکنن
PHP:
$db->query($query)->fetch_assoc()
یا
PHP:
$db->prepare($query)->execute($arg1,$arg2,....)->fetch_assoc()
روش دوم فقط یک بار کوئری رو مینویسید و متغیر رو ارجاع میدید برای این کار میتونید از mysqli هم استفاده کنید.

بهتون پیشنهاد میکنم کتاب advanced php5 programing رو بخو نید چون چند تا روش برای تعامل با بانک اطلاعاتی گفته که خیلی کاربردیه
 

yakoza

Well-Known Member
والا سیستم کاریش رو نمیدونم واسه همین سوال کردم

فقط فکر میکنم یجور کلاس در کلاس فراخوانی میشه در ظاهر

منظورتو درست متوجه نشدم ولی اینو ببین شاید منظورت این باشه

PHP:
<?php

/**
 * @author Naser kholghi
 * @copyright 2009
 */

class a
{
	private $b;
	public function __construct($b)
	{
		$this->b=$b;
		// ya mitoni mostaghim begi $this->b=new b();
	}
	
	public function chap()
	{
		$this->b->eco("salam");
	}
}


class b 
{
	public function eco($str)
	{
		echo $str;
	}
}
$b=new b();
$a=new a($b);
$a->chap();
?>
 

zoghal

Active Member
فکر میکنم برای دیتابیس بیشتر از این روشها استفاده میکنن
PHP:
$db->query($query)->fetch_assoc()
یا
PHP:
$db->prepare($query)->execute($arg1,$arg2,....)->fetch_assoc()
روش دوم فقط یک بار کوئری رو مینویسید و متغیر رو ارجاع میدید برای این کار میتونید از mysqli هم استفاده کنید.

بهتون پیشنهاد میکنم کتاب advanced php5 programing رو بخو نید چون چند تا روش برای تعامل با بانک اطلاعاتی گفته که خیلی کاربردیه

دوست عزیز اولن مثال هایی که زدید دقیقا همین چیزی هست که مد نظرم هست
در ثانی من مشکلی با روش های تعامل با بانک اطلاعاتی ندارم
فقط میخواهم بدونم این روش که خود شما هم بیان کردید
به چه صورت پیاده سازی میشه
دقیقا در مثال دومی که زدید جندین متد از یک آبجکت با هم و پیوشته فراخوانی میشند و 100 این متد ها باهم رابطه دارند
این چیزی هست که مد نظر من هست

منظورتو درست متوجه نشدم ولی اینو ببین شاید منظورت این باشه
دوست عزیز دقیقا منظور من تو مثال های آقای saidshp گنجانده شده.
من فقط نحوه پیاده سازی اون رو میخوام
 

saidshp

Member
خوب فکر میکنم منظورت رو گرفتم
خیلی سادس فقط کافیه یه شی رو return کنی چه تابع باشه چه متد بغیر از متد __construct
مثال
PHP:
class test1{
    public function __construct() {}

    public function returnTest2(){
        return new test2();
    }

}

class test2 {
    
    private $pro = "class test2::pro"; 

    public function __construct() {}
    
    public function printPro() {
        print $this->pro;
    }
    
    public function returnTest3(){
        return new test3;
    }
}

class test3 {
    
    private $pro = "class test3::pro"; 

    public function __construct() {}
    
    public function printPro() {
        print $this->pro;
    }
}
میتونی یه تابع بنویسی که شی برگردونه
PHP:
function returnTest1() {
    $obj = new test1();
    return $obj;
}
$object = returnTest1();
$object->returnTest2()->printPro(); // print class test2::pro
میتونی از خود شی هم استفاده کنی
PHP:
$classTest1 = new test1;
$classTest1->returnTest2()->returnTest3()->printPro(); // print class test3::pro
فقط به طور صریح نمی تونی این کار رو بکنی
PHP:
new test1()->returnTest2()->returnTest3()->printPro(); // Error
چون متد __construct هیچ نوع از دادهای رو نمی تونه برگردونه اول باید شی رو تو یه متغیر قرار بدی بعد متدها رو فراخوانی کنی

در اخر من برای خلاصه نویسی هیچ کدی رو تو متد __construct نذاشتم شما میتونی هر کدی رو بزاری این رو گفتم که اشتباه نشه
 
آخرین ویرایش:

zoghal

Active Member
برگردوندن آبجکت رو امتحان کردم
ببقیه رو هم چک میکنم فکر میکنم همین باشه
 

جدیدترین ارسال ها

بالا