تغطية مباشرة لديمو كامب دبي 3
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو جديد
تاريخ التسجيل: Aug 2007-
#1 (permalink)  
كيف أصنع كلاس يستدعي جميع الكلاسات؟


بسم الله الرحمن الرحيم


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

ارجو المساعده اخواني الأعزاء في الطلب التالي


لدي مجموعة من الكلاسات واريد ان اصنع كلاس عندما اعرفه اتعامل مع جميع الكلاسات التاليه عن طريقة

مثال

كلاس للقوالب
كود PHP:
class temp 
function 
ccc($var) {
do 
something
}
function 
vvv($var) {
do 
something 
}

كلاس لقواعد البيانات
كود PHP:
class mysql {
function 
fff($var) {
do 
something
}
function 
yyy($var) {
do 
something
}

لنفرض ان لدي تلك الكلاسات واريد عمل كلاس عن طريقه استدعي الكلااسات التاليه لأتعامل معهم عن طريق الكلاس الجديد

كود PHP:
class myClass {
function 
myClass(){
$temp = new temp;
$mysql = new mysql;
}

فإن اردت مثلا عمل
كود PHP:
$normalTemp = new temp;
$normalTemp->ccc(dddddddddddd);
 
كيف استطيع عمله عن طريق الكلاس الجديد
$myClass 
= new myClass;
$myClass->temp->ccc(dddddddddddd); 
في المثال الاخير.. اعلم انه خطأ 1000% ولكنه كان مجرد مثال لما اريد.. عسى ان تصل الفكره
فهل ممن الممكن عمل ذلك؟
وإن كان ذلك ممكن. فكيف يكون شكل الكلاس الجديد الذي عن طريقة يتم استدعاء الكلاسات الأخرى

والف شكر مقدما






__________________
مملكة الموت
=======================
100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة
DSQ8.com غير متواجد حالياً   قديم 10-02-2008, 06:49 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2004-
#2 (permalink)  

بص هو انت لازم تعرف الكلاسات التانيه داخل الكلاس بتاعك بال var مثال على كدا

كود PHP:
class myClass {
function 
myClass(){
 
var 
$temp = new temp;
var 
$mysql = new mysql;
}

والاهم طبعا انك لما تعمل انكلود لملفات الكلاسات في الملف بتاعك انك لازم تستعدي الكلاسات التانيه قبل ملف الكلاس الي انت عامله يستدعي الباقي علشان يقدر يتعرف عليهم

يعني لو انت مثلا كلاس القواعد في ملف mysql.php وملف كلاس التمبلت هو tepl.php

هيكون الاستعداء بالترتيب القواعد اولا
كود PHP:
include "mysql.php";
include 
"tepl.php"
وبعدين تستعدي الملف الاخير الخاص بكلاس الكلاسات .


هذا والله اعلم وان كان في خطأ فمني ومن الشيطان وياريت الاخوه اصحاب العلم يصححوه .






البلالام غير متواجد حالياً   قديم 10-02-2008, 11:13 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#3 (permalink)  

أخي العزيز، أرجو أن يوضح المثال التالي ما تبحث عنه:

كود PHP:
<?php
require('sub/ArCharsetC.class.php');

class 
Arabic {
    
public $ArCharsetC;

    
public function __construct() {
        
$this->ArCharsetC = new ArCharsetC();
    }

    
public function convertW2U($str) {
        
$str $this->ArCharsetC->win2utf($str);
        return 
$str;
    }
}

$Ar = new Arabic();
$str1 $Ar->convertW2U($str);
// This will work also :o)
$str2 $Ar->ArCharsetC->win2utf($str);
?>
لمثال عملي متكامل يمكنك الإطلاع على الشيفرة البرمجية التي طورتها ونشرتها في موقع Sourceforge.net والتي كانت الغاية منها جمع كافة الكلاسات السابقة التي طورتها لتعمل من خلال واجهة وحيدة:
Khaled Al-Shamaa PHP & Arabic Language






__________________
خالد الشمعة - Khaled Al-Shamaa
PHP, MySQL and Arabic language
DNSerror غير متواجد حالياً   قديم 14-02-2008, 02:08 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Aug 2007-
#4 (permalink)  

اخي البلالام

شكرا لك على محاولة المساعده.......


عزيزي خالد الشمعه... اسمح لي......









أنت عـبـــقــــــــري

الف شكر لك يالغالي






__________________
مملكة الموت
=======================
100(سبحان الله وبحمده ،،، سبحان الله العظيم) = 0 سيئة
DSQ8.com غير متواجد حالياً   قديم 17-02-2008, 12:36 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#5 (permalink)  

على الرحب والسعة






__________________
خالد الشمعة - Khaled Al-Shamaa
PHP, MySQL and Arabic language
DNSerror غير متواجد حالياً   قديم 17-02-2008, 04:03 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2004-
#6 (permalink)  

ياريت اعرف هل طريقتي فيها غلط ؟

الي اعرفه ان نظام ال public وال private بتدعمه php5 بس


ياريت حد يصحح معلوماتي وجزاكم الله خيرا






البلالام غير متواجد حالياً   قديم 04-03-2008, 01:33 AM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Sep 2006-
#7 (permalink)  

نعم يا أخي، كلامك صحيح مئة بالمئة، وهذا مقصود تماما، فأنا لا أنصح اي مبرمج يقوم بتعلم PHP أو يكتب شيفرة جديدة بالإعتماد على الإصدار السابق PHP 4 والذي توقف دعمه وتصحيحاته وصيانة ثغراته وسدها مع نهاية عام 2007، فيما الإصدار الحالي من لغة PHP وهو الإصدار الخامس قد نضج تماما بعد 3 أعوام من إصداره.

على كل حال، إن اردت المثال السابق متوافقا مع لغة PHP 4 لأسباب تخصك، فلا يوجد الكثير من التعديلات حقيقة، وستبدو الشيفرة البرمجية على الشكل التالي:

كود PHP:
<?php
require('sub/ArCharsetC.class.php');

class 
Arabic {
    var 
$ArCharsetC;

    function 
Arabic() {
        
$this->ArCharsetC = new ArCharsetC();
    }

    function 
convertW2U($str) {
        
$str $this->ArCharsetC->win2utf($str);
        return 
$str;
    }
}

$Ar = new Arabic();
$str1 $Ar->convertW2U($str);
// This will work also :o)
$str2 $Ar->ArCharsetC->win2utf($str);
?>






__________________
خالد الشمعة - Khaled Al-Shamaa
PHP, MySQL and Arabic language
DNSerror غير متواجد حالياً   قديم 04-03-2008, 10:27 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#8 (permalink)  
Lightbulb

إضافة..

و بما أننا نستعمل PHP5 فمن الممكن استعمال ال static methods لعمل هذه المهمة.

أي أن المبرمج بدلا من أن يكتب

كود PHP:
$str2 $Ar->ArCharsetC->win2utf($str); 
سوف يقوم بطلب الدالة بشكل استاتيكي

كود PHP:
ArCharsetC::win2utf($str); 
و هناك ملاحظة بيسطة على الكلاس التي بالأعلى. و هي أنه من الممكن تغييرها لتصبح هكذا. (مجرد اقتراح)

كود PHP:
<?php

require('sub/ArCharsetC.class.php');

class 
Arabic {
    
public $ArCharsetC;

    function 
__construct() {
        
$this->ArCharsetC = new ArCharsetC();
    }

    
public function convertW2U($str) {
        
$str $this->ArCharsetC->win2utf($str);
        return 
$str;
    }
}

$Ar = new Arabic();
$str1 $Ar->convertW2U($str);
// This will work also :o)
$str2 $Ar->ArCharsetC->win2utf($str);

?>
و ذلك لأن ال constructor يكون معرفا تلقائيا ك public في ال PHP5

و دمتم بود..







التعديل الأخير تم بواسطة : mr_m بتاريخ 04-03-2008 الساعة 01:54 PM.
mr_m غير متواجد حالياً   قديم 04-03-2008, 01:38 PM
رد مع اقتباس
رد


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
اقوى العروض .. اسعـار في متناول الجميع .. من استضافة و ريسلرات بمناسبه افتتاح الشركة Shrief الاستضافة المشتركة Shared Hosting 0 18-01-2008 05:42 PM
كيف استطيع تفريغ جميع رسائل البريد الخاص بالموقع ؟؟؟ ChanZeen تطوير الويب 1 16-01-2008 06:43 PM
كيف أسوي صفحة بحيث تعرض لي جميع الجداول التي في قاعدة البيانات hishamorg PHP 2 29-08-2006 06:38 PM
كيف احذف عضو مع جميع مشاركاتة؟؟؟ rahtaw إصلاح وصيانة المنتديات 2 11-07-2006 09:53 PM
هاك [ you ] يوهم قاريء الموضوع أنه المقصود بالموضوع للنسخة 3.5.0 أبو راشد إصلاح وصيانة المنتديات 10 31-10-2005 07:47 PM


الساعة الآن: 06:33 PM بتوقيت المملكة العربية السعودية