مهمان گرامی، خوش‌آمدید!
شما قبل از این که بتوانید در این انجمن مطلبی ارسال کنید باید ثبت نام کنید.

نام کاربری
  

گذرواژه‌
  





جستجوی انجمن‌ها

(جستجوی پیشرفته)

آمار انجمن
» اعضا: 111
» آخرین عضو: hdjk17
» موضوعات انجمن: 57
» ارسال‌های انجمن: 187

آمار کامل

کاربران آنلاین
در حال حاضر 7 کاربر آنلاین وجود دارد.
» 0 عضو | 7 مهمان

آخرین موضوع‌ها
ارسال مقدار amout به متد ...
انجمن: کتابخانه ها و افزودنی ها
آخرین ارسال توسط: admin
2018/08/31، 04:16 PM
» پاسخ: 5
» بازدید: 392
ده ترفند CSS بسیار مفید ک...
انجمن: HTML/CSS
آخرین ارسال توسط: tablooaraz
2018/08/06، 07:11 AM
» پاسخ: 5
» بازدید: 10,707
پی اچی پی بهتره یا بقیه ز...
انجمن: کدنویسی
آخرین ارسال توسط: admin
2018/07/18، 06:33 PM
» پاسخ: 1
» بازدید: 289
استفاده از توابع gettext ...
انجمن: مباحث عمومی
آخرین ارسال توسط: rahmani
2018/06/21، 08:21 PM
» پاسخ: 2
» بازدید: 699
یادگیری طراحی سایت و معرف...
انجمن: بحث آزاد
آخرین ارسال توسط: casperia
2018/06/15، 09:03 AM
» پاسخ: 0
» بازدید: 241
ویژگی های یک سایت خوب چیس...
انجمن: بحث آزاد
آخرین ارسال توسط: AzarinWeb
2018/05/29، 11:17 AM
» پاسخ: 0
» بازدید: 176
برنامه نویس خائن !
انجمن: بحث آزاد
آخرین ارسال توسط: persianuser
2018/05/13، 02:03 PM
» پاسخ: 7
» بازدید: 3,247
مشکل استفاده از Stored pr...
انجمن: مباحث عمومی
آخرین ارسال توسط: admin
2018/05/04، 05:18 PM
» پاسخ: 1
» بازدید: 542
شئ گرایی در php
انجمن: مباحث عمومی
آخرین ارسال توسط: farzanmuh
2018/01/25، 08:54 PM
» پاسخ: 0
» بازدید: 539
در یافت رشته عددی
انجمن: جاوا اسکریپت
آخرین ارسال توسط: admin
2018/01/18، 12:27 PM
» پاسخ: 1
» بازدید: 968

 
  ارسال مقدار amout به متد دیگه
ارسال کننده: amir_76 - 2018/08/15، 06:23 PM - انجمن: کتابخانه ها و افزودنی ها - پاسخ (5)

سلام
من از درگاه پرداخت زرین پال برای سایتم استفاده میکنم
https://github.com/MahdiMajidzadeh/CodeI...al-gateway

من به درستی به درگاه پرداخت متصل میشم با کد زیر:

کد php:
   function Payment()
 
   {
 
       $this->load->library('zarinpal');
 
       $merchant_id "134654-44654-5654654";
 
       $amount $this->inout->post('amout');
 
       $desc "تست درگاه پرداخت";
 
       $call_back "https://site.com/Users/VerifyPayment";
 
       $mobile "09121234567";
 
       $email"amir@yahoo.com";
 
       if($this->zarinpal->webgate($merchant_id $amount$desc$call_back$mobile$email)){
 
           $authority $this->zarinpal->getAuthority();
 
           $this->zarinpal->redirect();
 
       }
 
       else{
 
           $error $this->zarinpal->getError();
 
       }
 
   



حالا موقع تابع برگشت من چطور باید مقدار amout رو بگیرم؟ که بدم به تابع Verify ؟؟؟
کد php:
function VerifyPayment()
 
   {
 
       $this->load->library('zarinpal');
 
       $merchant_id "134654-44654-5654654";
 
       $amount = ??;
 
       $authority $_GET['Authority'];
 
       if($_GET['Status'] == 'OK'){
 
           if($this->zarinpal->verify($merchant_id,$amount$authority)){
 
               $refid $this->zarinpal->getRefId();
 
               if($refid == 100)
 
               {
 
                   echo "pay ok";
 
               }

 
           }
 
           else{
 
               $error $this->zarinpal->getError();
 
               echo $error;
 
           }
 
       }
 
       else{
 
           echo 'cancel';
 
       }
 
   



روش های ذخیره مقدار در سشن و this->payment() رو تست کردم جواب نمیده
ممنون میشم دوستانی که به درستی زرین پال رو در کد ایگنایتر استفاده کردن کدهاشو رو اینجا به اشتراک بزارن
ممنون  Heart

چاپ این مطلب

  پی اچی پی بهتره یا بقیه زبان ها؟
ارسال کننده: mino21 - 2018/07/17، 09:14 PM - انجمن: کدنویسی - پاسخ (1)

درود اساتید گرامی.

به نظرتون برای برنامه نویسی تحت وب کدام زبان بهتره؟

ایا احتمالش هست در آینده هاست و سرور ها تحت سیستم عامل اندرویید قرار بگیرن؟

چاپ این مطلب

  استفاده از توابع gettext برای ترجمه سایت
ارسال کننده: rahmani - 2018/06/20، 10:57 PM - انجمن: مباحث عمومی - پاسخ (2)

با سلام و احترام خدمت دوستان عزیز.
آیا کسی تلاش کرده تا به جای استفاده از توابع پیشفرض Language در Codeigniter، از توابع gettext استفاده کنه؟ 
مشابه چیزی که وردپرس برای قالب‌ها و پلاگین‌هاش استفاده میشه. (خروجی فایل‌های Po و Mo که به کمک برنامه‌ Poedit کار ترجمه رو فوق‌العاده تسریع میبخشه)

ممنون میشم منابعی رو معرفی بفرمایید و خصوصاً اگر تجربه‌ای دارید به اشتراک بزارید.
ممنونم.

چاپ این مطلب

  یادگیری طراحی سایت و معرفی بهترین وب سایت یادگیری آن
ارسال کننده: casperia - 2018/06/15، 09:03 AM - انجمن: بحث آزاد - بدون پاسخ

[تصویر:  w3schools-for-learning-web-design.png]

برای یادگیری طراحی و برنامه نویسی وب سایت یا به عبارتی دیگر، طراحی سایت ابتدا باید HTML بعد CSS بعد JavaScript و بعد یک زبان برنامه نویسی تحت وب مثل PHP یا ASP.NET یاد بگیرید. در انتهای این مطلب از وب سایت کاسپریا، ارائه دهنده خدمات طراحی سایت در کرج، یکی از بهترین وب سایتهای موجود که به صورت رایگان و حرفه ای میتوان طراحی وب را آموخت معرفی خواهد شد؛ این مطلب به نوعی پاسخ به سوالاتی مانند چگونه طراح سایت شویم، چگونه سایت بسازیم، آموزش طراحی سایت، طراح سایت شدن و غیره میباشد. یادگیری طراحی سایت (به صورت حرفه ای) نیازمند تسلط به زبان انگلیسی است چراکه برای یادگیری طراحی سایت کتاب ها و وب سایت های بسیاری وجود دارند ولی همگی به زبان انگلیسی هستند و یادگیری زبان انگلیسی نیازمند مطالعه روزانه و صبر است.

 

HTML چیست؟

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

CSS چیست؟

در بالا کمی درباره سی اس اس توضیح داده شد، زمانی که اجزا سایت با اچ تی ام ال مشخص و تعریف شد سپس باید به استایل و ظواهر آن پرداخت، به عنوان مثل رنگ پس زمینه، نوع و رنگ حاشیه ها، اندازه و موقعیت آن در صفحه، نوع فونت و اندازه آن و غیره باید با سی اس اس کدنویسی و تعریف شود.
 

JavaScript چیست؟

جاوا اسکریپت را میتوان به عنوان یک زبان برنامه نویسی توصیف کرد، زبانی که کدهای آن در مرورگر کاربری که وب سایت را باز میکند خط به خط اجرا و عمل میکند. تا این اینجا که اچ تی ام ال و سی اس اس توضیح داده شد با یادگیری همین دو زبان میتوانید صفحات ثابت ایجاد کنید، اما اگر نیاز به قابلیت هایی مانند، اعتبار سنجی فرمها، اسلایدشو، ایجکس (بروز رسانی صفحه بدون رفرش) و بسیاری موارد دیگر داشته باشید، این کارها با اچ تی ام ال و سی اس اس قابل انجام نیست، حالا باید از جاوا اسکریپت برای تعریف و برنامه نویسی قابلیتها استفاده کرد.
 

زبان Server Side چیست؟

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

PHP یا ASP.NET؟ کدام را باید یاد گرفت؟

در مورد یادگیری زبان سرور ساید دو گزینه اصلی رو به رو یعنی PHP و ASP.NET موجود است، PHP یک زبان اپن سورس میباشد و ASP.NET متعلق به مایکروسافت است، در مطلبی دیگر این دو زبان را بررسی خواهیم کرد اما برای یادگیری، PHP در الویت است زیرا نزدیک به 75 درصد وب سایت های جهان و ایران با پی اچ پی طراحی و راه اندازی شده اند و با یادگیری این زبان این 75 درصد را از دست نخواهید داد، و دیگر اینکه، سیستم های مدیریت وب سایت مثل وردپرس هم به این زبان کدنویسی شده اند.
 

کجا HTML, CSS, JavaScript و PHP را میتوان یاد گرفت؟

یکی از بهترین وب سایتهای موجود برای یادگیری طراحی سایت W3Schools.Com میباشد، نکته قابل توجه این مییاشد که تمام موارد بالا مثل یادگیری HTML، CSS، JavaScript و PHP همگی در این وب سایت به صورت گام به گام و به زبان انگلیسی ساده آموزش داده میشود، و نیازی نیست برای یادگیری هر یک به وب سایتهای مختلف مراجعه شود. همچنین برای هر درس مثال های مختلف برای درک بهتر ارائه شده است. البته این وب سایت فقط متن است، و وب سایت های دیگری هم مانند لیندا و تاتس پلاس آموزش های ویدئویی هم ارائه میدهند اما رایگان نیستند.
 

اصول طراحی

طراحی سایت فقط کدنویسی نیست، بلکه اصول طراحی هم موضوعی حتی مهمتر از کدنویسی میباشد، به این معنی شخص توان ایجاد طرحی با نظم و زیبایی ظاهری متفاوت یا به عبارتی دیگر هارمونی داشته باشد، یعنی انتخاب رنگ صحیح، ایجاد ساختار مناسب موضوع سایت، رعایت فواصل، حذف عناصر اضافی و کم کاربرد و غیره. بعد از یادگیری کدنویسی پیشنهاد میشود یه وب سایت های مختلف مراجعه کرده و اصول و نظمی را که در طراحی های خود به کاربرده اند مشاهده نموده و این اصول را در طراحی های خود پیاده سازی کنید.
 

جمع بندی

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

چاپ این مطلب

  ویژگی های یک سایت خوب چیست؟
ارسال کننده: AzarinWeb - 2018/05/29، 11:17 AM - انجمن: بحث آزاد - بدون پاسخ

امروزه پایگاه های اینترنتی روز به روز در حال افزایش است. مهم است که با فناوری های جدید سایتی با ویژگی های مطلوب برای موتور های جستجو و کاربران ایجاد کرد.این ویژگی ها عبارت اند از:
 
 
1-   اولین چیزی که بایستی در طراحی سایت رعایت شود داشتن یک سری برگه هاست،‌ این برگه ها شما صفحه‌ي درباره ما، که شامل توضیحات کاملی از کسب و کار شما و مدیر سایت است که باعث آشنا شدن بازدیدکنندگان و جلب اعتماد آن ها به شما خواهد شد. در صفحه‌ی درباره ما به چند سوال کاربر پاسخگو باشید: اینکه شما که هستید؟ چه خدماتی ارائه میدهید؟ خدمات شما چه ویژگی هایی دارد؟ سابقه خود را بگویید؟ مشتریان شما چه کسانی بوده اند؟ وجه تمایز و نقطه قوت شما با سایر رقبا در چیست؟ این ها سوالاتی هستند که باید در صفحه درباره ما به آن ها پاسخ داده شود. صفحه ي دیگر صفحه تماس با ما است که در آن آدرس شما، شماره تماس، شماره پیامک، و ایمیل شما در آن قرارگرفته است. یک فرم تماس هم برای راحتی در امر تماس در آن تعبیه شده است. صفحه‌ی دیگر صفحه‌ی تبلیغات است و در سایت های لازم گنجانده میشود و در آن تعرفه تبلیغات در موقعیت های خاص سایت برای کاربران نوشته میشود.
 
2-   کاربری راحت و ساده: یکی از معیارهای تشخیص یک سایت خوب سادگی در استفاده از آن است. کاربر هدف ما باید بدون گیج شدن به هر قسمت از سایت دسترسی پیدا کند و در هر مرحله این امکان را داشته باشد به مرحله قبل بازگردد. شاید یکی از عوامل تاثیرگذار در سادگی استفاده از طرح های مینیمال است. طراحی مینیمال به طرح های خلوتی میگویند که میتوان چشم مخاطب را به هر کجای مورد نظر هدایت کرد.
 
3-   ۱۰- لطفا از ویژگی های زیر در طراحی وب سایت حرفه ای استفاده نکنید. – استفاده از موسیقی – استفاده از Flash – هر چیزی که به صورت خودکار شروع به پخش یا اجرا نماید. – اطلاعات اضافه نظیر نوشته، تصویر و فیلم – استفاده از اینها باعث کندی و زیاد شدن مدت زمان بارگذاری صفحه می شود. ۱۰ ویژگی وب سایت حرفه ای را با یکدیگر بررسی نمودیم. با سفارش طراحی سایت به ایران تبلیغ سایتی خوب با ویژگی های بالا داشته باشید
 
4-   برای وب سایت حرفه ای خوب یک میزبان حرفه ای پیدا کنید. حتما به دنبال یک سرویس دهنده میزبانی(هاستینگ) باکیفیت و حرفه ای باشید. در انتخاب چنین میزبانی به کیفیت سرویس دهی، مدت زمان پاسخگویی به مشکلات و در دسترس بودن توجه زیادی نمایید.
 
5-   در طرا حی سایت اطلاعات تماس با ما را در دسترس و جلوی چشم کاربر قرار دهید. هیج چیز بدتر از آن نیست که کاربر در وب سایت شما به دنبال اطلاعات تماس بگردد. در اطلاعات تماس راه های تماسی را در وب سایت قرار دهید که همیشه به آنها پاسخگو باشید. اگر تلفن خود را هرزگاهی از دسترس خارج می کنید بهتر است آن را در اطلاعات تماس وب سایت قرار ندهید و فقط از ایمیل استفاده نمایید. حتما از ایمیلی استفاده نمایید که برای آن دامنه می باشد و از ایمیل gmail یا سایر ایمیل های شخصی به هیچ وجه استفاده نکنید.
 
منبع: https://azarinweb.com

چاپ این مطلب

  مشکل استفاده از Stored procedure و buffer
ارسال کننده: h_qorbani - 2018/04/07، 11:55 AM - انجمن: مباحث عمومی - پاسخ (1)

سلام
وقتی از Stored Procedure  استفاده میکنم بدرستی کار میکنه، اما برای کوئری بعدی که قرار هست بعد از stored procedure اجرا بشه با مشکل مواجه میشم و پیام زیر رو نمایش میده:

Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.

دوستان کسی این مساله رو میتونه رفع کنه؟

چاپ این مطلب

  شئ گرایی در php
ارسال کننده: farzanmuh - 2018/01/25، 08:54 PM - انجمن: مباحث عمومی - بدون پاسخ

شئ گرایی در پی اچ پی
واژه لاتین برنامه‌نویسی شی‌گرا OOP (بخوانید او او پی) و سرنام عبارت Object Oriented Programming است. در این سبک از برنامه‌نویسی کل پروژه به قسمت‌های مستقل کوچک‌تری تقسیم می‌شود. با این کار وظیفه هر بخش مشخص می‌شود و از طرفی شفافیت و خطایابی در کدهای برنامه ساده‌تر می‌شود. در برنامه‌نویسی روالی (ساخت یافته) هر یک از این بخش‌های جزئی را یک تابع تشکیل می‌داد اما در برنامه‌نویسی شی‌گرا کلاس‌ها این اجزاء را تشکیل می‌دهند. برای کد زنی به شیوه شی‌گرا باید مفاهیم زیر را بدانیم که در ادامه به صورت ساده و خلاصه برای شما بازگو می‌کنیم:

  • کلاس (Class)

  • شی (Object)

  • نمونه‌سازی (Instance)

  • متد (Method)

  • خصوصیت (Property)

  • ارث‌بری (Inheritance)

  • بسته‌بندی (Encapsulation)

  • چند شکلی (Polymorphism)

  • نوع عمومی (Public)

  • نوع محافظت شده (Protected)

  • نوع خصوصی (Private)
کلاس Class
کلاس‌ها الگوهایی هستند که اشیاء (Objects) از روی آن‌ها ساخته می‌شوند. تمامی اشیایی که در پروژه هم‌نوع هستند از یک کلاس (Class) مشخص سرچشمه گرفته‌اند. یک کلاس شبیه "نقشه" برای یک خانه است.
شیء Object
به یک نمونه بر گرفته از یک کلاس مشخص شیء (Object) گفته می‌شود. یک شیء شبیه یک "خانه ساخته شده" از روی نقشه است.
نمونه Instance
هنگامی که کار کد‌نویسی مربوط به یک کلاس انجام شد، برای بهره‌مندی باید از روی آن کلاس یک شیء بسازیم. به شیء ساخته شده از روی یک کلاس، نمونه (Instance) می‌گوییم. خانه ساخته شده یک "نمونه" برگرفته از نقشه است. تعداد نامحدودی خانه از روی آن نقشه ممکن است ساخته شود.
متد Method
هر کلاس ممکن است توابعی داشته باشد. به این توابع متد (Method) گفته می‌شود. این متدها هستند که رفتارها و قابلیت‌های یک شیء را تعیین می‌کنند. فرضاً سیستم سرمایش خانه را می‌توان یکی از متدهای کلاس خانه در نظر گرفت. اگر استفاده از کولرهای گازی در کلاس تعریف شده باشد پس تمام خانه‌هایی که از روی این کلاس ساخته می‌شوند دارای کولر گازی خواهند بود.
خصوصیت Property
کلاس‌ها  حاوی متغیرهایی نیز هستند. به این متغیرها خصوصیت (Property) می‌گوییم. رنگ خانه یکی از خصوصیات کلاس خانه است که در یک متغیر نگهداری می‌شود.
ارث‌بری Inheritance
یکی از مکانیزم‌هایی که در شی‌گرایی وجود دارد این است که یک کلاس از یک کلاس دیگر متولد شود. به این معنی که کلاس متولد شده علاوه بر ارث‌بری (Inheritance) از کلیه متدها و خصوصیات کلاس پدر، خود می‌تواند شامل متدها و خصوصیات جدیدی نیز باشد. فرض کنید که در حیاط خانه یک استخر آب اضافه شود. این خانه علاوه‌بر کلیه امکانات خانه اول دارای یک قسمت جدید (یا خصوصیت جدید و یا متد جدید) شده است.
بسته‌بندی Encapsulation
قرار دادن کلیه خصوصیات و متدهای یک کلاس در یک بسته‌بندی مشخص (در حافظه RAM) را بسته‌بندی (نهان‌سازی) (Encapsulation) می‌نامند. این کار باعث افزایش امنیت نیز می‌شود به طوری که دسترسی به خصوصیات و متدهای یک شیء، چنانچه از نوع داخلی تعریف شده باشد، توسط سایر اشیاء میسر نخواهد بود. در مثال خانه، حریم داخلی از حریم خارجی جدا است.
چند ریختی Polymorphism
عملکرد متفاوت کلاس‌ها به هنگام به اشتراک‌گذاری  یک رابط عمومی (Common Interface) را چند ریختی گویند.3 زمانی که بخواهید کلاسی تهیه کنید تا سایر کلاس‌های برنامه از آن استفاده کنند بدون اینکه از عملکرد داخلی آن اطلاع داشته باشند چند ریختی (Polymorphism) کاربرد دارد. فرض کنید که شما یک مهندس عمران هستید. برای ساختن هر بنایی اعم از مسکونی یا تجاری به عملیاتی نیاز دارید که برای همه آن‌ها مشترک است. مانند گودبرداری. در نتیجه شما می‌توانید کلاسی تهیه کنید که شیء ساخته شده از روی آن برای شما عملیات حفاری را انجام دهد. سپس به سراغ کلاس ساختمان بروید. کلاسی که متد حفاری دارد به ازای زمین‌های با اندازه متفاوت عملکرد متفاوتی دارد اما این کار برای هر سازه‌ای که شما بخواهید بسازید لازم است. در غیر اینصورت باید متد مربوط به حفاری به طور جداگانه در کلاس‌های مختلف شما نوشته شود (خانه، مغازه، پاساژ، برج و غیره).
نوع عمومی Public
خصوصیات و یا متدهایی از کلاس که از نوع عمومی (Public) تعریف شوند از هر جایی قابل دسترس خواهند بود. مانند پارگینگ یک مجتمع آپارتمانی که همه واحدها به آن دسترسی دارند.
نوع خصوصی Private
این نوع از متدها یا خصوصیات فقط مختص به کلاس خود هستند و دسترسی به آن‌ها از جای دیگر مقدور نیست. مانند اتاق‌های خانه که راهی از اتاق‌های خانه‌های دیگر به آن‌ها وجود ندارد.
نوع محافظت شده Protected
در نوع محافظت شده متدها و خصوصیات کلاس فقط از طریق خود کلاس، والد کلاس و فرزندان کلاس قابل دسترسی هستند. مانند یک خانه دوبلکس که بین طبقات آن ارتباط وجود دارد اما از خانه‌های دیگر ارتباطی وجود ندارد.
تعریف یک کلاس در PHP
برای تعریف یک کلاس از کلمه رزرو شده class به همراه نام انتخابی برای آن کلاس استفاده می‌کنیم. مانند کد زیر:
کد:
<?php
class person{
}
?>

با این کار به سادگی یک کلاس تهی با نام person ایجاد شده است. در ادامه برای این کلاس خصوصیات و متدهایی تعریف می‌کنیم:
کد:
<?php
class person{
   public $name;
   function __construct($inputName){
       $this->name=$inputName;
   }
   public function showName(){
       echo $this->name;
   }
} // End class
$morteza=new person('Morteza');
$morteza->showName();
?>
در کد بالا به کلاس person خصوصیتی به نام name اضافه شده است. پس اشیایی که از این روی این کلاس ساخته می‌شوند در دل خود چنین خصوصیتی خواهند داشت. همانطور که می‌بینید خصوصیت نام شخص از نوع public تعریف شده است پس سایر اشیاء نیز به مقدار این property دسترسی خواهند داشت.
نکته:  پس در PHP به متغیرهای خارج از کلاس، متغیر (Variable) و به متغیرهایی که در درون کلاس قرار دارند خصوصیت (Property) گفته می‌شود.
توابع سازنده Constructor
یکی از قابلیت‌های شی‌گرایی وجود توابع سازنده است. نام این متدها کلمه رزرو شده construct__ است. وظیفه آن‌ها اجرا شدن به محض نمونه‌گیری از کلاس، است. به این معنی که هرگاه از کلاس نمونه گرفته شود این تابع خود به خود و بدون فراخوانی توسط برنامه‌نویس، اجرا خواهد شد. توابع سازنده کاربردهای زیادی می‌توانند داشته باشند که یکی از رایج‌ترین آن‌ها تعیین مقدار اولیه برای خصوصیات (متغیرهای) کلاس است. به عمل مقدار دهی اولیه Initialize نیز گفته می‌شود. در کد بالا از تابع سازنده برای مقدار دهی به خصوصیت name با استفاده از مقدار ورودی (پارامتر) استفاده شده است.
متد کلاس showName
به کلاس فرضی ما یک متد به نام showName نیز اضافه شد. وظیفه این متد به سادگی نمایش خاصیت name است. نوع این متد نیز public است لذا سایر اشیاء خواهند توانست این متد را فراخوانی و اجرا کنند.
ساختن شیء از روی کلاس person
همانطور که می‌دانید متغیرها در PHP می‌توانند انواع مختلفی از داده‌ها را نگهداری کنند. برای نمونه اعداد صحیح، اعشاری، رشته‌ها (دنباله‌ای از کاراکترها)، آرایه‌ها و اشیاء. پس هنگامی که می‌خواهیم از روی یک کلاس یک شیء (Object) تهیه کنیم آن را در یک متغیر قرار می‌دهیم. برای ساختن شیء از کلمه رزرو شده new به همراه نام کلاس و پرانتز، استفاده می‌کنیم. در مثال بالا یک شیء به نام morteza ایجاد شده که رشته کاراکتری Morteza را نیز به تابع سازنده ارسال می‌کند. متعاقباً تابع سازنده این رشته را در درون خصوصیت name قرار می‌دهد تا سایر متدها در صورت نیاز بتوانند از این مقدار استفاده کنند.
دسترسی به متدها و خصوصیات اشیاء
هنگامی که شیء مورد نظر خود را از روی یک کلاس ساختیم برای دسترسی به خصوصیات و یا فراخوانی یکی از متدهای آن شیء، از نماد <- (خط تیره، علامت بزرگتر) استفاده می‌کنیم. برای راحتی اسم این نماد را "نقطه" بگذارید (A->B بخوانید A نقطه B). ابتدا نام شیء سپس نماد مربوطه و بعد نام متد یا خصوصیت مورد نظر خود را ذکر می‌کنیم. برای فراخوانی متدها پس از ذکر نام متد، باید از پرانتز استفاده شود. در صورت نیاز، آرگومان (Argument) نیز می‌توان به متدها ارسال کرد. برای خصوصیات پرانتز نباید تایپ شود. جهت دیدن تاثیر و حوزه دسترسی نوع‌های public private و protected به مثال‌های  این صفحه مراجعه کنید. در نمونه‌های زیر فرض بر نوع public می‌باشد:
کد:
$morteza->showName(); //فراخوانی متد بدون ارسال پارامتر
$circle->draw(50,50,25); //فراخوانی متد رسم از شیء دایره همراه با ارسال داده‌های مورد نیاز از طریق پارامتر
$student->accept_year; //خواندن سال قبولی دانشجو از شی دانشجو
$car->model;
$person->weight;
نکته: برای دسترسی به متد یا خصوصیت یک کلاس از درون خود آن کلاس باید از کلمه رزرو شده this$ استفاده کنیم. یعنی در هنگام نوشتن کد کلاس هرگاه به متدی یا مقدار یکی از خصوصیت‌های کلاس جاری نیاز شد به شکل زیر اقدام می‌کنیم. نکته اینکه فقط یک علامت $ در ابتدا ذکر می‌شود.
کد:
$this->name; //  خواندن مقدار یک خصوصیت
$this->method(); // فراخوانی یک متد خودی

نکته: برای دسترسی به متد یا خصوصیت یک کلاس از درون کلاس (و نه شیء) دیگر از دو کاراکتر کولِن (Colon) به دنبال هم :: استفاده می‌شود. مثال:
کد:
parent::__construct($name);

نحوه‌ی ارث‌بری یک کلاس
برای این کار از کلمه رزرو شده extends بعد از نام کلاس و سپس ذکر نام کلاس والد، استفاده می‌کنیم. در هنگام تعریف کلاس، تنها مجاز به یک بار ارث‌بری هستیم، یعنی نمی‌توان از چند واژه extends برای ارث‌بری همزمان از چند کلاس استفاده کرد و PHP این اجازه را نمی‌دهد(single inheritance languages).  در کد زیر یک کلاس دانشجو تعریف شده است. از آن‌جا که دانشجو نیز یک شخص است لذا برای بهره‌مندی از خصوصیات و متدهای کلی از کلاس person ارث‌بری شده است. فرضاً اگر کلاسی برای ورزشکاران نیز بخواهیم بنویسیم می‌توانیم همین روال را تکرار کنیم.
کد:
<?php
class person{
   public $name;
   function __construct($inputName){
       $this->name=$inputName;
   }
   public function showName(){
       echo $this->name;
   }
} // End class


کد:
// نحوه ارث بری از کلاس شخص


کد:
class student extends person{
   private $major;
   public function __construct($name,$major){
       parent::__construct($name);
       $this->major=$major;
   }
   public function showMajor(){
       return $this->major;
   }
} // End class

$Elina=new student('Elina','Computer Software');
echo "<p>Hello, my name is ";
echo $Elina->showName();// از کلاس شخص به ارث رسیده است
echo "</p><p>";
echo "I am study ";
echo $Elina->showMajor();
echo "</p>";
?>
نکته: پس از ارث‌بری می‌توانید متدهای نوع عمومی (Public) و یا محافظت شده (Protected) را بازنویسی (Redeclare) کنید و تغییراتی در آن‌ها ایجاد کنید اما نمی‌توان این کار را برای متدهای نوع خصوصی (Private) انجام داد.
خاتمه
در پایان توصیه اکید بنده به دوستان علاقمند به برنامه‌نویسی این است که هرگز به یادگیری کد از طریق خواندن، شنیدن یا دیدن اکتفا نکنند و حتماً با دستان خود کد بنویسند. از کدهای بسیار ساده تا پیشرفته. تنها زمانی از copy و paste بخش‌های مختلف پروژه خود استفاده کنید که قبل از آن، کدنویسی ملکه ذهن شما شده باشد. برای کسب درآمد از طریق برنامه‌نویسی مراحل زیر باید سپری شوند:

  • یادگیری (از هر طریقی که دوست دارید مانند کتاب، ویدئو، فایل صوتی و غیره)

  • تکرار و تمرین زیاد و متنوع به صورت علمی و عملی

  • تبدیل آموخته‌ها به ملکه ذهن

  • کسب تجربه

  • شروع فعالیت تجاری هدفمند
از توجه شما سپاس گزارم

چاپ این مطلب

  در یافت رشته عددی
ارسال کننده: fsohrabiii - 2018/01/08، 07:43 AM - انجمن: جاوا اسکریپت - پاسخ (1)

سلام دوستان.
من میخوام که یک ورودی ایجاد کنم که یه رشته عددی 1 و -1 رو در یافت کنه. مثلا رشته 11-11-11-1-.
این اعداد رو میخوام بریزم توی یک آرایه.
اول باید این اعداد رو از هم جدا کنم.
در مرحله بعد باید این ها رو به آرایه تبدیل کنم.
این کار رو انجام میدم اما متد split میاد اعداد رو به رشته تبدیل می کنه که به درد من نمیخوره. چون میی خوام این اعداد در هم ضرب بشن که کاری که من انجام داد NaN رو بر میگردونه.
کسی راه حلی داره؟

چاپ این مطلب

  مقایسه ASP.NET MVC با PHP Symfony
ارسال کننده: webone - 2017/12/10، 12:01 PM - انجمن: MVC - بدون پاسخ

باتوجه به اینکه شرکت های زیادی نیز وجود دارند که از PHP استفاده میکنند، به مقایسه ASP.NET و PHP در دو معماری مشابه بر اساس کلیدی ترین فاکتور ها می پردازیم:
1- سرعت
در مقایسه های مختلف انجام شده و طبق بررسی ساختار این دو،  PHP برای پروژه های متوسط به پایین سرعت بیشتری دارد اما برای پروژه های متوسط و روبه بالا سرعت ASP.NET بیشتر است. لازم به ذکر است همیشه پروژه ها در حال رشد و بزرگتر شدن هستند بنابراین در نهایت می بایست آینده را مورد توجه قرار داد. در بسیاری موارد شبکه اجتماعی FaceBook که با PHP اجرا شده است جهت مثال پروژه های بزرگ بیان میشود اما لازم به ذکر است در FaceBook  از نسخه تغییر یافته PHP و همچنین کامپایلری متفاوت استفاده شده است. بنابراین این مثال صحیح نیست. برای ASP.NET در این زمینه میتوان شبکه اجتماعی Myspace را مثال زد.

2- امنیت
باتوجه به اینکه PHP به صورت متن باز است بنابراین یافتن نقاط ضعف در آن بسیار آسان بوده و بیشتر در معرض آسیب است. از طرفی دیگر با گذشت زمان قطعاً در نسخه های مختلف PHP و ASP.NET ضعف های امنیتی  آشکار میگردد و این در حالی است که با توجه به اینکه ASP از NET. استفاده میکند که به صورت مستقل  بر روی سیستم عامل ویندوز وجود دارد و همگام با بروز رسانی خودکار ویندوز نسخه NET. نیز بروز میگردد و در نتیجه ضعف های شناخته شده نیزخودکار برطرف میگردند اما در PHP می بایست به صورت دستی این بروز رسانی انجام گردد و علاوه بر آن معمولاً نیاز به تغییراتی جهت سازگاری با بروز رسانی های جدید است اما در NET. نیازی به انجام تغییرات نیست و به صورت خودکار انجام میشود. این قابلیت با نام Backward Compatibility شناخته شده است.
3- ساختار
در   asp.net به اجبار طراحی شیء گرا خواهد بود اما در PHP ممکن است طراحی شیء گرا مورد استفاده قرار نگیرد و در نتیجه ساختاری مستحکم در نظر گرفته نشود.
مزایای استفاده از MVC :
- با تقسیم یک برنامه به سه قسمت مدل، نمایشگر و کنترلگر، مدیریت برنامه یا پروژه  آسانتر میشود.
- از ViewState و فرم های سروری استفاده نمی کند . به همین خاطر برای برنامه نویسانی که تسلط کامل بر رفتار برنامه را می خواهند عالی است.
- از الگوی کنترلگر جلو استفاده میکند که درخواست های برنامه را توسط یک کنترلگر پردازش میکند. این مسئله باعث میشود تا بتوانیم برنامه هایی را طراحی کنیم که از زیر ساخت های غنی مسیریابی پشتیبانی میکند.
- پشتیبانی بهتری از طراحی و توسعه آزمون محور دارد.
- برای برنامه های پشتیبانی شده توسط تیم های بزرگ برنامه نویسان که کنترل بسیار بر رفتار برنامه را می خواهند، بهتر کار میکنند.
MVC  به زبان ساده تر :
ام وی سی یک مدل طراحی سایت است که تکنولوژی به روزی محسوب میشود، این تکنولوژی تحت چهارچوب هایی ارائه شده اند، ابتدا باید بدانیم که mvc چیست؟
ام وی سی از کلمات model ، view، controller گرفته شده است در این نوع از برنامه نویسی همه چیز سر جای خود است بطوری که هر یک از این بخش ها مسئولیت اجرا و یا ارتباط با بخشی را دارند.
در مدل mvc تمامی برنامه نویسان مجبور میشوند تا از این چهارچوب پیروی کنند و همین مسئله باعث میشود تا کدهای نوشته شده خوانایی کامل را داشته باشد و هر برنامه نویسی بتواند کدهای برنامه نویس دیگری را ویرایش نماید در صورتی که در کدنویسی به صورت pure هر برنامه نویسی از روش و عادت خود پیروی میکند.
طراحی سایت توسط mvc  دنیای برنامه نویسی را نظم بخشیده است و به برنامه نویسان قدرت بیشتر به همراه سرعت فراوان را هدیه کرده است.
در طراحی سایت با mvc هر کدام از بخش های گفته شده مسئول اجرای فرآیندی هستند که در زیر به معرفی این موارد پرداخته میشود:
– لایه model: این لایه از معماری mvc ، مسئول ارتباط با پایگاه داده است به این صورت که شما وقتی می خواهید اطلاعاتی را از پایگاه داده بخوانید و یا اطلاعاتی را استخراج کنید مجبور هستید تا اطلاعات را به لایه مدل بفرستید.
– لایه view: این لایه همانطور که از نام آن پیداست مربوط به نمایش است، اما نمایش چه چیزی؟
لایه ی view از تکنولوژی طراحی سایت mvc نزدیکترین لایه به کاربر است و مواردی را که کاربر در صفحه می بیند توسط این لایه تولید میشود و وقتی که می خواهید اطلاعات پایگاه داده را استخراج کرده و به کاربر نمایش دهید باید ابتدا اطلاعات را توسط لایه مدل استخراج کرده و در قسمت view نمایش دهید.
– لایه controller : این لایه مسئول کنترل است ولی نه به این معنی که مسئول امنیت وب سایت شما باشد. البته با امنیت وب سایت بی ارتباط نیست ولی برای این منظور طراحی نشده است. لایه ی کنترلر در معماری طراحی سایت توسط mvc به کنترل لینک ها می پردازد یعنی زمانی که کاربر می خواهد به صفحه ای برود، درخواست او به لایه کنترلر ارسال میشود و این لایه فرآیندی که برنامه نویس برای آن لینک تدارک دیده است را نمایش میدهد.

چاپ این مطلب

  اسامی رزرو شده
ارسال کننده: takbit - 2017/11/30، 04:49 PM - انجمن: کدنویسی - بدون پاسخ

اسامی رزرو شده‌ای که در کد ایگنایتر نمی‌توان از آن‌ها استفاده کرد

به دنبال خدمت رسانی بیشتر، فریم ورک Codeigniter از یک سری توابع و اسامی در عملیات خود استفاده می‌کند. به همین خاطر برنامه‌نویس نمی‌تواند از برخی اسامی استفاده کند. از آن‌جا که کلاس کنترلر شما، کنترلر اصلی برنامه را گسترش خواهد داد لذا شما باید مراقب باشید تا هنگام تعریف‌های خود، عیناً از نام‌هایی که قبلاً توسط فریم‌ورک کدایگنایتر بکار رفته‌اند، استفاده نکنید، زیرا این کار باعث می‌شود تا به طور مثال، توابع جدید توابع کلاس اصلی را لغو (Override) کنند. در ادامه اسامی رزرو شده به تفکیک آمده‌اند. از این اسامی استفاده نکنید.


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

Controller
CI_Base
_ci_initialize
Default
index

اسامی رزرو شده توابع
()is_really_writable
()load_class
()get_config
()config_item
()show_error
()show_404
()log_message
()exception_handler_
()get_instance

اسامی رزرو شده متغیرها
$config
$mimes
$lang

اسامی رزرو شده ثابت‌ها
ENVIRONMENT
EXT
FCPATH
SELF
BASEPATH
APPPATH
CI_VERSION
FILE_READ_MODE
FILE_WRITE_MODE
DIR_READ_MODE
DIR_WRITE_MODE
FOPEN_READ
FOPEN_READ_WRITE
FOPEN_WRITE_CREATE_DESTRUCTIVE
FOPEN_READ_WRITE_CREATE_DESTRUCTIVE
FOPEN_WRITE_CREATE
FOPEN_READ_WRITE_CREATE
FOPEN_WRITE_CREATE_STRICT
FOPEN_READ_WRITE_CREATE_STRICT

چاپ این مطلب