تور لحظه آخری
امروز : شنبه ، 3 آذر 1403    احادیث و روایات:  امام علی (ع):نادانى ريشه همه بديهاست.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

 






آمار وبسایت

 تعداد کل بازدیدها : 1832562219




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

سوالات در مورد ايجاد class در php -


واضح آرشیو وب فارسی:سایت ریسک: t=32291">سوالات در مورد ايجاد class در php NabiKAZ 14 خرداد 1384, 03:57سلام بايد ببخشيد بابت موضوعات كوچيك يه موضوع جديد ايجاد ميكنم. اگر پيشنهاد بهتري براي ارايه سوالاتم سراغ داريد بگيد. من خيلي وقته با php برنامه مينويسم و هيچ مشكلي از لحاظ پياده سازي ندارم و تا حالا نشده بخوام كاري كنم و لزوماْ نياز پيدا كنم كه از كلاس ها استفاده كنم و هميشه بدون كلاس ها مشكلم رو رفع كردم . تا اينكه زد به سرم كه حداقل كار كردن باشون رو ياد بگيم هر چند به كارم نيان . اين مقدمه اين تاپيك بود. به عنوان اولين سوال: يه فانكشن رو ميشه اينجوري استفاده كرد: $user = new profile; $user->profile(); حالا چطور ميشه يه متغيير رو از تو كلاس بيرون كشيد و تو بدنه اصلي برنامه ازش استفاده كرد. بازم ميگم ميدونم سادست ولي من تازه از صفر شروع كردم . ممنون نبي BeHnAm_akb 14 خرداد 1384, 09:28آقا نبی سلام یه جورایی منم تا چند وقت پیش به ابن مرحله رسیدم و یه دفعه نیاز کردم تو PHP به OOP نیاز دارم از ائنجایی که دوست ندارم مثل من خیلی تلو تلو بخوری پیشنهاد می کنم اینجا ها رو ببینی البته شما استاد مایی: Majid 14 خرداد 1384, 13:44لطفا کد خودتون رو در تگ [ php ] قرار بدین.... مجید NabiKAZ 14 خرداد 1384, 22:29سلام بهنام خان از پاسختون ممنونم . لينكهايي كه دادي رو سر فرصت مطالعه ميكنم. راستش من تموم مقاله ها در مورد class و oop تو iranphp.net رو چندين بار خوندم ، اما همون طور كه در ابتداي يكي از مقاله ها اومده درك ضرورت استفاده از كلاس ها كمي مشكله . و ضعف منم همينه . يعني هنوز درست نميدونم كجا لازمه از كلاس استفاده كنم . درست مثل 8 سال پيش كه اون موقع برنامه هام رو با if و goto هاي خيلي زياد مينوشتم و با function ها اشنا نبودم . اون موقع هم خيلي سعي كردم تا ضرورت استفاده از function ها رو تونستم درك كنم و بفهمم كجا كارم باهاشون راحت تر راه ميافته. در مورد سوالي كه بالا مطرح كردم هم ، خودم جوابش رو پيدا كردم ! من نبايد از $ ابتداي متغيير استفاده ميكردم . يعني اينجوري ميشه متغيير رو كشيد بيرون: $user->id ببخشيد بيش از حد مقدماتي بود. آقا مجيد ، از شما هم ممنون كه تذكر داديد ولي خوب اديتورتون زياد قوي نيست و منم iq نميرسيد كد رو دستي بنويسم ... الان كه درست شد ;) تشکر از همه نبی zfarhad 2003 15 خرداد 1384, 02:22خوب معمولا در برنامه‌نويسي Php ضرورتي نداره كه شما از كلاسها استفاده كنيد و اين كاملا برمي‌گرده به سليقه برنامه‌نويس كه بخواد چه جوري كد نويسي كنه. (به صورت Oop يا ساخت يافته) اما مزيت استفاده از كلاسها در اينه كه ‍: 1- كد شما رو خواناتر مي‌كنه و فهم كد به مراتب راحت تر مي‌شه. 2- استفاده مجدد از كد نوشته شده خيلي آسانتر و بهتر خواهد بود (البته اين دو مورد به خود برنامه‌نويس هم ربط داره) 3- مي‌تونيد از قابليتهايي كه كلاسها در اختيار شما قرار مي‌دند استفاده كنيد كه اين قابليت‌ها توانايي زيادي به نوشتن كدهاي بهينه‌تر به شما مي‌دن (مثل استفاده از ارث‌بري , پلي موفيسم و غيره) 4- اگر كسي بتونه از كلاسها به نحو احسن استفاده كنه ميزان كدنويسي تقريبا تا 50 % كاهسته مي‌شه يعني به جاي 1000 سطر 500 سطر برنامه مي‌نويسي 5- اگه از كلاسها بتوني درست استفاده كني حتي مي‌تونن به اسكريپت‌هاي شما امنيت خاصي رو هم ببخشن. حالا فعلا اينا رو داشته باشين تا بعد BeHnAm_akb 15 خرداد 1384, 10:05من این رو تجربه کردم که در برنامه های بزرگ نمی شه بدونه OOP کار کرد. من هم هنوز با منظق OOP درگیرم اما وقتی کدی با OOP نوشته میشه خیلی لذت بخشه به قول یکی از بچه های ایران php اولش هیچی از oop نمی دونیم بعد که باهاش آشنا شدیم همه چیزو با oop می نویسیم ( یه جورایی طالبان برنامه نویسی می شیم! ) بعدشم تازه یاد میگیریم کجا به درد می خوره . اما خوب در کل oop در php 5 خیلی بهتر شده و در اصل اصلا در php 5 به وجود اومده. karevan 15 خرداد 1384, 11:15یکی بخ ما میگه این oopچیه؟! BeHnAm_akb 15 خرداد 1384, 14:59oop همون Object Oriented Programming هست به عبارت دیگه برنامه نویسی شی گرا که یک نوع روش برنامه نویسی ساختار سافته است. zfarhad 2003 15 خرداد 1384, 16:09همونطور كه دوست عزيزمون گفت oop يعني برنامه‌نويسي شي‌گرايي كه شما به هرچيزي در برنامه به شكل يك شي جداگانه كه خصوصيات جداگانه‌اي دارد نگاه مي‌كنيد و بعد همه اشيا برنامه رو تعيين كرده و جداگانه برنامه‌نويسي مي‌كنيد بعد كه رسيديم آخر كار همه اين اشيا را در كنار هم قرار مي‌ديم تا با يكديگر ارتباط برقرار كرده و در واقع اصل برنامه رو درست كنن. NabiKAZ 15 خرداد 1384, 21:29سلامي دوباره ار دوستاني كه محبت كردند و در بحث شركت كردند ممنونم . استفاده ميكنيم ار صحبتاشون. پس نتيجه اينكه همه موافقن كه درك چگونگي و پياده سازي الگوريتم برنامه بوسيله oop و class ميتونه مهم باشه . بعد از اون ديگه همه چيز ساده ميشه. در واقع استارت كار مهمه و پي بردن به ضرورت لزوم استفاده از oop و يا استفاده نكردن از اون . براي اينكه مسئله براي من و بعضي دوستان تازه وارد جا بيافته . فكر كنم نياز به چند مثال كاربردي و عملي داريم . براي مثال پروژه اي كه خودم در گيرش هستم رو مطرح ميكنم كه هم كار خودم راه بيافته و هم ضمن اون تجريه كسب كنيم . ببينيد ساده خدممتون عرض كنم ! يك كاربر كه وارد سايت ميشه ، ميتونه در سايت عضو بشه . آيتم ها و فيلدهايي كه بايد پر كنه خيلي زياد هستند. (حداقل 30 فيلد) پس بايد يه جدول به اسم users داشته باشيم كه 30 تا فيلد داره . تا اينجا كاربر عضو ميشه و اطلاعات تو ديتابيس ذخيره ميشن و مشكلي نيست . طرف دوم مدير سايته كه بايد كاربران عضو شده رو دسته بندي كنه و گروه كاربري رو مشخص كنه . يعني مشخص كنه كه كاربري كه مشخصات رو پر كرده بايد جزو گروه A يا B يا... قرار بگيره . كه اين كار هم با ست كردن فيلد user_mod از جدول users صورت ميگيره . و مشكلي نداره . حالت بعد زمانيه كه كاربر به سايت لوگين ميشه . كاربر بعد از لوگين شدن به سايت بر حسب نوع گروهي كه براش مشخص شده ، يعني عضو گروه A يا B يا هر چي كه هست . بايد يه سري امكانات پيش روش ظاهر بشه . ضرورت استفاده از class ها شايد اونجايي پيدا بشه كه نياز باشه هر لحظه و در هر صفحه سايت به اطلاعات كاربري كه لوگين كرده دسترسي پيدا كرد. مثلا در يه صفحه خاص تصميم ميگيريم كه جنسيت كاربري كه لوگين كرده رو تشخيص بديم . راهي كه به نظر ميرسه اينه كه نام كاربر كه قبلا در يك كوكي ذخيره شده رو بكشيم بيرون و توي ديتابيس جستجوش كنيم و فيلد جنسيت رو استخراج و استفاده كنيم . حالا تصور كنيد در هر لحظه بخواهيم يه مشخصه خاص از كاربر رو بدونيم ! (توجه كنيد كه براي هر كاربر 30 فيلد وجود داشت يعني 30 مشخصه!) و هر بار دسترسي به هر فيلد كاري وقت گيره . البته شايد بگيد هر بار سطر مربوط به اون يوزر رو ميخونيم و براي هر فيلد نيازي نيست كه در ديتابيس يك جستجو انجام بديم ، ولي چيزي كه مسلمه اينه كه فيلدهاي خونده شده از ديتا بيس رو بايد تو متغيير هاي مجزا بريزيم . و از اون متغيير ها استفاده كنيم كه اين كار هم كمي وقت گيره و هم اینکه تعداد متغییرها در برنامه زیاد میشن . تازه اگر بجای یک کاربر، اطلاعات چندین کاربر رو بخوایم استخراج کنیم کار پیچیده تر میشه. راهي كه به نظر من ميرسه استفاده از يه كلاس با نام profile است! تا اينجا هر چي گفتم صورت مسئله بود. اما از اينجا كه تشريخ class هست ممكنه اشتباه باشه، پس نيازه كه دوستان نظر بدن. من اينطور تصور كردم كه اگر يه كلاس به نام profile داشته باشيم . كه در اون به ازاي تمام فيدهاي كاربر (30 فيلد) يه متغيير وجود داشته باشه . حالا اگر يه شيء به اسم user از نوع كلاس profile ايجاد كنيم. در واقع اون 30 متغيير(فيلد) اجزاء كلاس محسوب ميشن . و شيء user كه ما تعريف كرديم در واقع 30 تا جزء به خودش ميگيره ! و هر لحظه ميتونيم به اجزاء (فيدها) ي شيء (user يا كاربر) دسترسي پيدا كنيم . اين كلاسي كه تشريح كردم شايد مفيد به نظر بياد يا شايدم كار بيهوده اي به نظر بياد. و يا در كل ؛ پروژه اي كه در بالا توضيح دادم به كلاس هاي مفيد ديگه نياز داشته باشه . كه چون من در اين مورد تجربه ندارم نيازمند راهنمايي شما دوستان هستم . باتشكر نبي NabiKAZ 15 خرداد 1384, 21:33سلام در اين رابطه اين مقالات ميتونن مفيد باشن : zfarhad 2003 16 خرداد 1384, 01:00خوب اونجوري كه من از مسئله شما برداشت كردم شما احتياج يه چند تا شي داري كه من توضيح كلي درباره‌شون مي‌دم و خودت بايد بري يكم تحقيق كني تا به جايي برسي (به قول معروف نابرده رنج گنج ميسر نمي‌شود) خوب اولا به يه كلاس مبنا نياز داريم مثلا user كه به قول شما داراي 30 فيلد مشخصه است كه در تمامي كاربران چه گروه A و چه گروه B يكسان است. حال بعد از طراحي اين كلاس با جزئيات كامل بايد يك كلاس به اسم userA داشته باشيم كه مخصوص كاربران گروه A است و از كلاس قبلي يعني user ارث خواهد برد. حال مي‌تونيم به اين كلاس خصوصيات مخصوص خودش رو بديم كه فقط مختص كاربران گروه A است و به همين ترتيب براي گروه B هم كلاس userB رو تعريف مي‌كنيم. خوب فكر كنم تا اينجاش واضح بود. حال بايد براساس منطق برنامه خودتون از اين كلاسها استفاده كنين به نظر مي‌رسه كه در اينجا معقولانه‌ترين روش استفاده از پولي‌موفيسم است كه شما مي تونيد با درست كردن يه متغير از كلاس مبنا به راحتي در برنامه از كلاسهاي مشتق شده استفاده كنين. خوب البته اگه بخواين خيلي كارتون تميزتر دربياد اول بايد بشينين و برروي كاغذ ارتباط بين كلاسها و كلا برنامه‌تون رو دقيق رسم كنين مثلا چه چيزهايي بين اينا ردوبدل مي‌شه هركدوم چه خصوصياتي دارن و بعد پيادا سازي‌شون كنيد. NabiKAZ 16 خرداد 1384, 09:35سلام ممنونم توضیحت کاملی بود . استفاده کردم . برم دنبالش ... ارث بری ... پولي‌موفيسم!!! .... برم سرچ کنم مقاله چیزی پیدا کنم ببینم داستان اینا چیه .... باز بر میگردم فعلا NabiKAZ 27 بهمن 1384, 00:20میدونم این تاپیک قدیمی بود ، ولی چون موضوعش با موضوع بحثم یکی بود تاپیک جدید ایجاد نکردم... (البته متن رو برای جای دیگه نوشته بودم و اینجا زدم که راهنمایی کنید. به همین خاطر با پست اول تاپیک مشابه هست.) سلام ، من تو درک استفاده از class ها خيلي مشکل دارم، و طبيعتاً توي طرز استفادشون هم مشکل دارم. ولي دوست دارم لزوم استفادشون رو درک کنم و بتونم ازشون استفاده کنم. چون ميدونم حداقل خاصيتشون جلوگيري از تکرار کد نويسي در پروژها هاي مختلف است، يعني به راحتي ميشه اونها رو در هر پروژه اي بدون تغيير در اونها استفاده کرد. فکر ميکنم روي سرعت بارگزاري صفحات هم بي تاثير نباشه. با يه سوال ساده شروع ميکنم ، اين کد رو ببينيد: $member = new MemberLogin(); $member_info = $member->checkLogin(); اگر درست متوجه شده باشم با اين کد ميشه اطلاعات کاربر رو توسط تابع checkLogin که متعلق به کلاس MemberLogin است برگردوند و در متغيير member_info قرار داد و استفاده کرد. سوال اينجاست که چه لزومي در استفاده از کلاس وجود دارد؟ آيا نميشه تابع checkLogin به همراه ديگر توابع برنامه رو در يه فايل مجزا قرار داد و اون فايل رو به بدنه اصلي برنامه include کرد. و از توابع استفاده کرد. آيا در اين مثال استفاده از کلاس بالا مزيت و دليل خاصي داره ؟! پ.ن: سعي کردم به کمک مثال مزاياي کلاس ها رو براي خودم جا بندازم. باتشکر نبي Ali_Farhadi 27 بهمن 1384, 09:22سلام فلسفه استفاده از کلاس و به طور کلی برنامه نویسی شی گرا encapsulation کردن کدها ، افزایش reusability و customizability و در نهایت سهولت در تحلیل و فهم برنامه ها و جلوگیری از بروز خطاهای ناخواسته و ... می باشد. قابلیت های برنامه نویسی شی گرا تو php زیاد ملموس نیست. حداقل بهتره برای شروع مفاهیم شی گرا رو توی زبان هایی نظیر delphi و vb یاد بگیرید. wayiran 28 تير 1385, 00:08مي خواستم طرز استفاده از كلاس ها رو تو php ياد بگيرم.... واسه همين تو انجمن سرچ كردم اين تاپيك قديمي رو پيدا كردم.... ولي هيچ جاش استفاده از class رو ياد نداده... اگه ميشه با يه مثال توضيح بدين. NabiKAZ 28 تير 1385, 01:01مي خواستم طرز استفاده از كلاس ها رو تو php ياد بگيرم.... واسه همين تو انجمن سرچ كردم اين تاپيك قديمي رو پيدا كردم.... ولي هيچ جاش استفاده از class رو ياد نداده... اگه ميشه با يه مثال توضيح بدين. سلام ، شیی گرایی در PHP : (یک صفحه) کلاسها در PHP چهار: (سه صفحه) این دو مقاله بسیار مفید هستند. نبی wayiran 28 تير 1385, 15:52مرسي خيلي به دردم خوردن هادی ابراهیمی 14 مرداد 1385, 09:30سلام ، شیی گرایی در PHP : (یک صفحه) کلاسها در PHP چهار: (سه صفحه) این دو مقاله بسیار مفید هستند. نبی آقا نبی این لینک کار نمیکنند میشه تست کنی. NabiKAZ 15 مرداد 1385, 12:15آقا نبی این لینک کار نمیکنند میشه تست کنی. سلام مشکل از سرور هست گاهی کار میکنه گاهی نه من الان زدم باز شد. شما بازم سعی کن اگر موفق نشدی میگردم فایلها رو براتون لود میکنم. نبی




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1035]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن