PDA

View Full Version : استفاده از یک شی کلاس در صفحه



majid1605
جمعه 19 اردیبهشت 1393, 00:13 صبح
سلام
من یک کلاس واسه پایگاه داده با استفاده از pdo تعریف کردم .حالا میخوام بدونم اگه فقط تووی یک صفحه از یک شی واسه کار با دیتابیس استفاده کنم یا برای کارهای مختلف هربار یک شی جدید تعریف کنم چون تست کردم با هر دو مورد کار میکنه .
منظورم از کارهای مختلف فراخوانی از جدول های مختلف هستش مثلا تووی صفحه ممکنه از یه جدول مطالب و از یک جدول دیگه مشخصات کاربر و یک جدول تنظیمات سایت رو نیاز باشه از دیتابیس فراخوانی کنیم .حالا واسه کار با هریک از این جداول یک شی تعریف کنم یا از یک شی واحد استفاده کنم.
چه تووی صفحات html که ممکنه تگهای <?php?> زیادی ایجاد بشه چه nدر یک فایل php
البته یه تابع تووی کلاس هست که کارش تخریب کامل شی یا ازاد کردن حافظه با استفاده closeCursor است.

MMSHFE
جمعه 19 اردیبهشت 1393, 01:18 صبح
اگه شئ شما معتبر هست، بهتره با همون کار کنید. همچنین میتونید درصورت لزوم کلاستون رو با الگوی Singleton پیاده سازی کنید که بطور خودکار اگه شئ قبلی در دسترس باشه، همون رو برمیگردونه. مثال:

class DB {
private static $instance;
public function __construct() {
if(self::$instance == null) {
// create a new object and store it in self::$instance
}
return self::$instance;
}
}

majid1605
جمعه 19 اردیبهشت 1393, 14:54 عصر
ممنون
نمیدونم چرا مدیران اینجا دکمه fullscreen ادیتور رو فعال نمی کنن :متفکر:
منظورتون از معتبر بودن چیه؟وقتی تووی صفحات html یک شی از کلاس تعریف می کنیم یا حتی یک متغیر مگه تا زمانی که صفحه وجود داره اون شی یا متغیر معتبر نیست مگر اینکه خودمون اونو از بین بریم؟
مثال رو ببینید




<html>
<body>
<?php
require_once('db.php');
$mydb = new db();
$mydb->query(SELECT......);
//statement
$mydb->free();//use closeCursor PDO
?>
<div>
<?php
$mydb->query(INSERT......);
//statement
$mydb->free();//use closeCursor PDO
$mydb->query(SELECT......);
//statement
$mydb->free();//use closeCursor PDO
?>
</div>
<div>
<?php
$mydb->query(DELETE......);
//statement
$mydb->free();//use closeCursor PDO
?>
</div>
</body>
</html>

اینو میشه به چند طریق دیگه تعریف کرد یکیش اینه که کلاس رو تغییر بدم و Singleton رو استفاده کنم
یکی دیگه اینه که هر بار در پایان تگ php شی رو نابود کنم و به شی جدید ایجاد کنم



<html>
<body>
<?php
require_once('db.php');
$mydb = new db();
$mydb->query(SELECT......);
//statement
$mydb->destroy();//stmt = null
?>
<div>
<?php
$mydb->query(INSERT......);
//statement
$mydb->destroy();//stmt = null
$mydb->query(SELECT......);
//statement
$mydb->destroy();//stmt = null
?>
</div>
<div>
<?php
$mydb->query(DELETE......);
//statement
$mydb->destroy();//stmt = null
?>
</div>
</body>
</html>


به نظرتون کدوم راه بهتره