سلام دوست عزیزم شی گرایی وقتی خودش رو نشون میده که پروژه عظیم باشه نه تو این مثال هایی که واسه یاد گیری دوستان زحمتشو کشیدن
میخوای عملی ببینی برو vBulletin و جوملا رو دانلود کن و کرهاشو بررسی کن اینم یه مثال عملی:لبخند:
Printable View
سلام دوست عزیزم شی گرایی وقتی خودش رو نشون میده که پروژه عظیم باشه نه تو این مثال هایی که واسه یاد گیری دوستان زحمتشو کشیدن
میخوای عملی ببینی برو vBulletin و جوملا رو دانلود کن و کرهاشو بررسی کن اینم یه مثال عملی:لبخند:
به نام خدا
با سلام
من که چیزی از ویبولتین نمی فهمم ، چون خیلی پیچیده است ، اگه شما می دونید ، بیایید کد هاش رو درس به درس تشریح کنید ، خیلی طرفدار داره این کار! اگه سایتی هم داشته باشید ، رنک سایتتون رو این کار خیلی بالا می بره!:تشویق:نقل قول:
سلام دوست عزیزم شی گرایی وقتی خودش رو نشون میده که پروژه عظیم باشه نه تو این مثال هایی که واسه یاد گیری دوستان زحمتشو کشیدن
میخوای عملی ببینی برو vBulletin و جوملا رو دانلود کن و کرهاشو بررسی کن اینم یه مثال عملی:لبخند:
در ضمن نظر من هم تشریح یک پروژه عظیم شی گرایی به زبان فارسی است ، البته تاکنون جدید ترین کتاب فارسی که در این مورد خوندم ، کتاب شی گرایی آقای امجدی بوده است ، اما در این کتاب پروژه ای ندارد.
حالا اگر شما و دیگر دوستان می تونید ، این کار رو انجام بدید بسم الله!:متفکر:
سلام دوست عزیزم حالا اون که در حد یه شوخی بود:لبخند:امیدوارم ناراحتت نکرده باشم
ولی یه سورس از کتاب Wrox PHP and MySQL Create Modify Reuse از فصل اول این کتاب میزارم که ساخت یه سیستم ورود خروج کاربر با استفاده از کلاس user است هم حجم کمه هم واسه شروع بنظرم جالب میاد!
البته بگم فقط واسه شروع وگرنه اونقد پیشرفته نیست ولی اگه تا حالا پروژه ای نزدی که توش شی گرایی باشه این حتما کمکت میکنه
فصلهای دیگه کتاب هم مثالهای جالبی داره میتونی بخونی
امیدوارم کمکت کنه و البته از من دلگیر نشده باشی:چشمک:
به نام خدا
با سلام
مرسی ، اما خوبه قبل از این که انتشار بدید یه تغییراتی تو کد بدید ، منظور این که هم نسخه اصلی رو بزارید و هم نسخه خودتون رو چون کد ها پر از اشکاله!
بازم دستتون درد نکنه، بازم ادامه بدید.
با سلام
اینم یه کلاس ساده کاری از بنده ی حقیر
امید وارم خوشتون بیاد
http://www.phpclasses.org/package/71...-tooltips.html
به نام خدا
با سلام
با تشکر از دوستان ولی کلاستون کاربرد زیادی نداره و تقریبا ضعیف است ، خوب است کد کلاس را مستقمیا نگذارید و فقط از آن ها بهره گرفته و کدی بنابر سلیقه خودتان منتشر کنید.
چون اگر بنا به قرار دادن لینک ها مستقیم از سایت یا آپلودشده در برنامه نویس باشد، دیگر نیازی به این کار نیست یه سر به سایت هایی مانند راکس و phpclass می زنیم که کداش خیلی بهتر و جامع تر و زیاد تره.
به نظر من اگر کد ها رو خودتون بنویسید خیلی بهتره.
من هم یک کد که مربوط به موضاعات سایت است برای شما قرار دادم ، البته اصل کد مال خودم نیست و فقط ویرایشش کردم ، اما کد خوب و مفیدی است.:چشمک::تشویق:
ضمیمه 78196
موفق باشید.
بهتره در مورد ساخت سيستم مديريت محتوا با شي گرايي يه كم بحث كنيم اصلا ببينيم چجوري كار ميكنه. اين لينك يه آموزش خوب در موردش داره و خيلي هم ساده است.
ساخت ساده ترين سيستم مديريت محتوا با شي گرايي
بهتره در مورد design pattern ها و نحوه استفادشون یه آموزش راه بیفته چون خیلی از برنامه نویسها باهاش آشنایی ندارن یا ازش استفاده نمیکنن
حالا اگر کسی پیدا نشد شاید خودم شروع کنم
با سلام حضور دوستان بنده هم با saina2006 موافقم ، لطفا در مورد الگوهای طراحی بحث بشه تا در این مورد هم مطالبی رو یاد بگیریم!!!!
ممنون .
همیشه شاد باشید
بخاطر یک $ که اشتباهاً قبل از count توی توابع نوشته شده. کد صحیح اینه. شرمنده سریع تایپ کرده بودم:
public class MyClass {
private static int $count = 0;
public MyClass() {
MyClass->count++;
}
public static Count() {
return MyClass->count;
}
}
موفق باشید.
مرسی از پیگیری شما،دوست عزیز پیغام خطایی که به من میده باز پارسه هستش ، از خط اول public رو که بر میدارم بازم پیغام خطا از خط دوم داد که int رو حذف کردم ،باز حطا از خط بعدش ...
class MyClass {
private static $count = 0;
public function MyClass() {
MyClass->count++;
}
public static function Count() {
return MyClass->count;
}
}
با این کد باز از خط MyClass->count++; خطا میگیره شما گفتید باید نام کلاس رو استفاده کرد برای متغیر های static
و سوال مهمتر کلا برای اینکه یکسری متغیر ها (پروپرتی ها)با ایجاد فرضا دو شی که با شی اول مقدار پروپرتی مورد نظر عوض کرد و با شی دوم مقدار پروپرتی رو بخونه و همان مقداری باشه که اولی وارد کرده باید اون پروپرتی static تعریف شده باشه؟
با این کد کار میکنه
class MyClass {
private static $count = 0;
public function MyClass() {
MyClass::$count++;
}
public static function Count() {
return MyClass::$count;
}
}
این نمونه کد هست مشکل اصلی کد هم این بود که count جز کلمات رزرو هستش برای همین خطا میداد
class MyClass {
static private $varCount;
public function __construct() // Or init
{
self::$varCount++;
}
static public function getCount()
{
return self::$varCount;
}
}
$test = new MyClass();
$test = new MyClass();
$test = new MyClass();
echo MyClass::getCount();// echo 3
$test = new MyClass();
echo MyClass::getCount();// echo 4
پاسخ سوآلتون هم مثبته
کلا بیشترین جایی که در هر پروژه MVC استفاده از Static رو میبینید در ارتباط با بانک اطلاعاتی هستش برای نگه داشتن ارتباط
موفق باشید
شرمنده حقیقتش اون موقعی که مثال رو گذاشته بودم، از #C کپی کردم و سریع یکسری تغییرات دادم چون فقط قصدم آشنایی با کاربرد مقادیر بود ولی الآن که دقت کردم دیدم یکسری اشتباهات در Syntax وجود داشته که عذرخواهی میکنم. کد صحیح اینه:
class MyClass {
private static $objCount = 0;
public function MyClass() {
self::objCount++;
}
public static function ObjCount() {
return self::objCount;
}
}
$t1 = new MyClass();
$t2 = new MyClass();
$t3 = new MyClass();
echo MyClass::ObjCount(); // echo 3
$t4 = new MyClass();
echo MyClass::ObjCount(); // echo 4
موفق باشید.
سلام
من داشتم مطالب رو از اول یاد می گرفتم که وقتی اقای hidensoft به قسمت اموزش یه موتور جستجوگر و mvc رسیدند اصلا هیچ توضیحی ندادند و من هم که تازه کارم خیلی برام سخت بود درک این دو درس تا قبلش همه اموزشهاشو خط به خط توضیح میداد البته اموزشها ماله سال 86 فک کنم باشه و نمیدونم که خود اقای hidensoft اصلا دیگه تو این انجمن هست یا نه
و از اساتید محترم تقاضا دارم که این دو درسو برام تشریح کنید (صفحات 1 و 2 اموزش ساخت موتور جستجوگر و mvc )
قسمت موتور جستوجو فقط یک نمونست می تونید از این قسمت فعلا رد بشید ادامه بدید. در مورد MVC سوالی اگر دارید بپرسید در خدمتم.
به نام خدا
با سلام و خیر مقدم به جناب hidensoft
فکر کنم که Mvc توی php زیاد کاربرد نداشته باشه، چون الان تا اون جایی که میدونم ویبولتین، وردپرس و... هیچ کدام بر اساس Mvc طراحی نشده اند و Mvc فقط کار رو در برنامه نویسی پیچیده تر می کنه!:متفکر:نقل قول:
قسمت موتور جستوجو فقط یک نمونست می تونید از این قسمت فعلا رد بشید ادامه بدید. در مورد MVC سوالی اگر دارید بپرسید در خدمتم.
نظر شما چیست؟
بطور کلی MVC موقعی که پروژه بزرگ باشه و قصد توسعه و نگهداری طولانی مدت از اون رو داشته باشین مفید هست. کلاً ایده کدنویسی ساخت یافته در پروژه های جدی و حرفه ای، ایده خوبیه و MVC هم یک الگوی ساخت یافته و منسجم و خوب هست. حالا یک نفر یا یک تیم برنامه نویسی دوست نداره ازش استفاده کنه، نمیشه بگیم که بدرد نمیخوره یا کاربرد کمی داره، حتی اگه اون یک نفر یا تیم برنامه نویس، گروه سازنده vBulletin باشه!
در تکمیل حرفهاتون
الان 99 درصد فریم ورک ها معماری MVC رو رعایت میکنن همچنین سیستم های مدیریت محتوا دارن به این سمت میرم .
جوملا رو نگاه کنید ورژن فعلی
همونطور که دوستان گفتند MVC به شما قدرت مانور بالایی می ده تا کار رو درست و صحیح جلو ببرید از به هم ریختن کد جلوگیری کنید و توسعه کد رو برای دیگر برنامه نویس ها آسون کنید. در مورد وردپرس یا ویبی که از MVC استفاده نمی کنند : ببینید اگر من برم خودمو بندازم تو چاه ولی نمیرم کار درستی نکردم دلیلی نداره شما این کارو تکرار کنید. وردپرس نمی تونه MVC بشه قبلا توی ایران پیاچپی گفتم در موردش که اگر وردپرس بیاد از این شکله احمقانه خودش رو به بقیه فریمورک یا اسکریپت ها حرفه ای برسونه چند نفر باز هم براش پلاگین می نویسند ؟ جواب اینه که تعداد یوزر هاش کم می شه و این همه پلاگین موجود رو هم از دست می ده پس این سیاست اگر چه در حال حاضر به نفع وردپرس هست اما نمی شه گفت چون وردپرس اینجوریه پس ما هم نیاز نداریم.
این پست که حذف شد اسپم بود ؟ :دی ندیدمش حیف شد :دی
سلام
با تشکر از دوستان
الان خود شما کدوم فریم ورک رو پیشنهاد می کنید و همچنین از کدوم فریم ورک استفاده می کنید؟
جوملا که بدرد نمی خوره!نقل قول:
جوملا رو نگاه کنید ورژن فعلی
استاد armsoftpc
میشه بفرمایید چرا جوملا به درد نمیخوره. این حرفتون فکر نمیکنید خیلی خیلی مضحکه. جوملا الان پلتفرم هستش میدونین یعنی چی؟
هر وقت جوملا تونست اطلاعات FTP رو توی فایل کانفیگ نذاره میشه اسمش رو سیستم مدیریت محتوا گذاشت .
همه ما روزانه و ماهانه بک آپ میگیریم ، فکر نکنم کسی دوست داشته باشه اگه بک آپش دست یکی بیافته سایتش هک بشه ؟
جوملا از نظر معماری الان چیز خوبیه اما سنگینه
یه نگاه به elxis بندازید اونم مامبو بیسه .
متاسفانه بهش بهاداده نمیشه ویلا از نظر پرفورمنس از جوملا بهتره .
موفق باشید
مامبو بیس؟ احسنت. فکر کنم نسخه 1.3 رو دارید میگید نه؟ جوملا از صفر کد نویسی شد بعد این نسخه . خوب شما که خبر ه هستید چرا خودتون تنظیمش نمیکنید؟ امنیت همیشه به سیستم بر نمیگرده به شرایطش هم بستگی داره. شما همینطور نصب میکنید و میشینید؟
اگر دوستانه از من بپرسند جوملا به درد می خوره می گم نه به درد نمی خوره. اکثر پروژه هایی که من پیاده سازی می کنم اینقدر کاستوم هستند که اگر بخووام با جوملا پیادشون کنم بادی خیلی وقت بزارم و فریم ورک جوملا بیشتر دست و پا گیرم هست تا عصای دست. اما اگر بنا باشه یه سایت مدیریت محتوا بسازم شخصا ترجیح می دم بجای WP از جوملا استفاده کنم چون حداقل یه MVC داره. من فکر می کنم منظور شما از پلتفرم همون فریم ورک هست چون پلتفرم بودن یه کد یه مقدار بی معنیه.نقل قول:
میشه بفرمایید چرا جوملا به درد نمیخوره. این حرفتون فکر نمیکنید خیلی خیلی مضحکه. جوملا الان پلتفرم هستش میدونین یعنی چی؟
این حرفو یکی تو ایران پی اچ پی هم زد نکنه خودت بودی ؟ اونجا جواب دادم یا ندادم ؟ :دی نه باور کن با این دلیل نمی شه جوملا رو زیر سوال برد اما دلایل دیگه ای وجود داره برای نشون دادن ضعفش.نقل قول:
هر وقت جوملا تونست اطلاعات FTP رو توی فایل کانفیگ نذاره میشه اسمش رو سیستم مدیریت محتوا گذاشت .
عامو این که پروژه که مرده دیگه پشت سر مرده حرف نزنیم خوب نی :دینقل قول:
یه نگاه به elxis بندازید اونم مامبو بیسه .
کی به شما گفته بعد از این نسخه جوملا از صفر نوشته شد ؟ :دی نوچ از صفر نوشته نشد اما از 1.4 بود که تغییرات اساسی توی جوملا شکل گرفت.نقل قول:
مامبو بیس؟ احسنت. فکر کنم نسخه 1.3 رو دارید میگید نه؟ جوملا از صفر کد نویسی شد بعد این نسخه .
به طور کلی تاپیک در مورد OO هست در مورد فریم ورک و سی ام اس بحث نکنید :تشویق:
http://www.elxis.org/eblog/evolution...joomla254.htmlنقل قول:
مامبو بیس؟ احسنت. فکر کنم نسخه 1.3 رو دارید میگید نه؟ جوملا از صفر کد نویسی شد بعد این نسخه . خوب شما که خبر ه هستید چرا خودتون تنظیمش نمیکنید؟ امنیت همیشه به سیستم بر نمیگرده به شرایطش هم بستگی داره. شما همینطور نصب میکنید و میشینید؟
سلام دوستان من میخوام یه برنامه ای بنوسیم که 2 نفر بتونند باهم تصویری و صوتی در ارتباط باشند کسی مطلب یا فیلم مفید در رابطه با این موضوع داره؟!!!
فکر نمی کنم ربطی به این موضوع داشته باشه.
میدونم من در تالار هم مطرح کردم اما جوابی نگرفتم گفتم شاید دوستان کمک کنند!!!نقل قول:
فکر نمی کنم ربطی به این موضوع داشته باشه.
اونش به خودم مربوطه عزیزم فکرنکنم به شما مربوط باشه:لبخندساده:
آقای hidensoft خیلی ممنون بابت تاپیک خوبتون
خیلی قشنگ هم یاد گرفتم
فقط در بحث وارثت و.. نگفتین به چه دردی میخره و چه کاری هایی میشه انجام داد
اگه میشه یه مثال بزنید
سلام
دوستان لطفا با هم دیگه دعوا نکنین
ببینید سوال برای هر فردی پیش میاد چه مسلط باشه چه نباشه
بهتره دوستان با همدیگه باشیم تا دشمن باشیم این دوستی خیلی بهتره
ان شاء الله که این دوستی حفظ میشه
یاعلی
ببینید به عنوان مثال ما می خوایم کلاس هایی با اسم یه سری حیوان بسازیم و حرکات این هارو پیاده سازی کنیم. به عنوان مثال حیوانات شیر ، گوسفند ، تمساح. به این کد نگاه کنید.نقل قول:
قای hidensoft خیلی ممنون بابت تاپیک خوبتون
خیلی قشنگ هم یاد گرفتم
فقط در بحث وارثت و.. نگفتین به چه دردی میخره و چه کاری هایی میشه انجام داد
اگه میشه یه مثال بزنید
<?php
class Lion{
function Attack(){}
function Eating(){}
function Runing(){}
}
class Sheep{
function Eating(){}
function Walking(){}
}
class Alligator{
function Attack(){}
function Eating(){}
function Crawl(){}
}
?>
همونطور که میبینید تابع Eating در بین تمام حیوانات تکرار شده. حالا برای جلوگیری از duplicate شدن کد میایم و یه کلاس مادر در نظر میگیریم که لازم نباشه این تابع توی همه کلاس ها تکرار بشه. حالا به این کد نگاه کنید.
<?php
class Animal{
function Eating(){}
}
class Lion extends Animal{
function Attack(){}
function Runing(){}
}
class Sheep extends Animal{
function Walking(){}
}
class Alligator extends Animal{
function Attack(){}
function Crawl(){}
}
?>
حالا تمام حیوانات از کلاس مادر که Animal هست تابع Eating رو به ارث می برند و دیگه نیاز نیست که برای تمامشون یک تابع رو تکرار کنیم. اما همونطور که میبینید تابع Attack هم بین شیر و تمساح مشترک هست. پس میایم یه کلاس دیگه اضافه می کنیم که این تابع رو در خودش داشته باشه و کلاس شیر و تمساح ازش ارث ببرند.
<?php
class Animals{
function Eating(){}
}
class Predator_Animals extends Animals{
function Attack(){}
}
class Lion extends Predator_Animals{
function Runing(){}
}
class Sheep extends Animals{
function Walking(){}
}
class Alligator extends Predator_Animals{
function Crawl(){}
}
?>
سوالی بود در خدمتم.
ممنون از مثال خوبتون
باتوجه به مثالتون من این کد رو نوشتم.که هیچی نشون نمیده
class oop{
function sample88($name){
$this->name=$name;
}
}
class bg extends oop{
function sample088(){
print $this->name;
}
}
$oop=new oop;
$bg=new bg;
$oop->sample88('ok');
$bg->sample088();
بازم ممنون از آموزش خوبت به نظر من شما باید معلم بشن شایدم باشید(مطلب رو ذوب میکنیت عین کره میریزن تو دهان ما:قلب:)
یه سول دیگه دستور زیر چیکار میکنه
پست چهار
function printTheRightSound($obj)
{
if ($obj instanceof Animal)
{
$obj->makeSound();
}
else
{
print "Error: Passed wrong kind of object";
}
print "\n";
}
ببینید وراثت در صورتی اتفاق میوفته که توابع دارای یک نام یک سان نباشند. (در مورد صدا کردن توابع) شما وقتی می گینقل قول:
باتوجه به مثالتون من این کد رو نوشتم.که هیچی نشون نمیده
$oop->sample88('ok');
تابع sample88 از کلاس oop رو داری اجرا می کنی که توی دستور بالا میاد متغیر name رو با مقدار ok ست می کنه. بعد توی خط بعد
$bg->sample088();
خب ببین این الان یه متغیر دیگست که از کلاس bg گرفته شده و ارث بری داره از oop. این متغیر دیگه اون متغیر نیست. یک شی دیگه است. درسته که شما از extends استفاده کردی اما دلیلی نداره که متغیر name از bg$ همون مقداری رو داشته باشه که این متغیر در oop$ داره. استفاده صحیح از وراثت این شکلیه :
<?php
class oop{
function setName($name){
$this->name=$name;
}
}
class bg extends oop{
function getName(){
print $this->name;
}
}
$bg = new bg;
$bg->setName('xXx');
$bg->getName();
در مورد سوال دومتون این مربوط به بحث پولی مورفیسم هست. مطالب مربوط بهش رو بیشتر مطالعه کنید.
کار این تابع اینه که اگر کلاسی که بهش داده شده خود کلاس Animal باشه یا کلاسی باشه که از این کلاس ارث بری داشته باشه تابع makeSound رو فراخوانی می کنه.
ببخشید من یه سوال داشتم درباره ی public ، protected و private.
من می خوام نوع متغیر $class->error; را جوری بزارم که زمان استفاده بشه خوندش اما نشه تغیرش داد بنظر شما باید چکار کنم؟
نوعش رو private بگذارین و بعد یک متد public بنویسید که مقدارش رو return میکنه و متدی برای مقداردهی بهش ننویسید. اینطوری فقط با کمک متدی که نوشتین، میشه خوندش و نمیشه تغییرش داد. موفق باشید.
سپاس بی کران از همه دوستان مخصوصا hidensoft عزیز ..
به قول یکی از دوستان تشکر خالی کافی نبود
درود درود درود
در ضمن تقدم متد ها در کلاسهای والد و فرزند چطوری هست ؟
منظور وقتیه که یه متد رو در هر دو کلاس تعریف کنیم ( الان به ذهنم رسید تست نکردم خودم :دی )
سلام. مباحث خوبی مطرح شده چند تا سوال داشتم
۱- تفاوت این دو کد تو چیه؟
public static function say_hi()
static public function say_hi()
۲- منظور از عملگر =& چیه؟
۳- تو مثالی که مطرح شده بود تابع validate صدا نزده شده . چطوری فراخانی شده پس؟
function ValidateEmail ($email){
$this->email=$email;
Validator::Validator();
}
function validate() {
$pattern=
"/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
}
سلام خدمت دوستان عزیز
بد ندیدم در این تاپیک سایت http://net.tutsplus.com رو بهتون معرفی کنم که فوق العاده آموزشهای خوبی برای شی گرایی (و البته سایر موارد) داره
اگه توی این سایت یه سرچ بزنید: oop خیلی آموزش های خوب و مفیدی پیدا می کنید و حتی یک سریش هم ویدیویی هست که مرحله به مرحله بهتون می گه باید چیکار کنید و چه فایلی بسازید.
من خیلی استفاده بردم از این سایت. البته این هم بگم که تمام ویدیوهاش رایکان نیست و یه بخشی از اونها پولی می شه.
باسلام
خیلی ممنون از آموزش بسیار مفید و آموزندتون.
من یک نظری داشتم، بهتر نیست، یه فایل pdf هر چندگاهی از قسمت ها آموزشی این تاپیک و بعد از بحث ها در مورد هرکدام از مطالب و جمع بندی پایانی آن، در قسمت اول تاپیک یا حالا هر جایی از اون قرار بدهید تا دوستان یا افراد مبتدی-ای مانند من، در بین این همه بحث و جدل سر گیجه نگیرند :کف:
البته اساتید زبون درازی من رو ببخشید :خجالت:
سلام.آقا دمت گرم همین oop رو ادامه بده به صورت حرفه ای و لطفا چندتا مثال جامع و کاربردی هم بنویسید.ممنون
کتاب معمای شی گرا در C# اسم کتابیه که اخیراً توسط معلم خوشنام خانم زهرا بیات نوشته شده،در این کتاب سعی شده با مثال پیش بره ، و به صورت خلاصه و روان به آموزش مفاهیم شی گرا در سی شارپ پرداخته
من فکر میکنم برای کسانی که دنبال یک راه حل ساده و سریع برای یادگیری OOP در سی شارپ هستند کتاب خوبی میتونه باشه.