بایگانی برچسب: s

آموزش ساخت برنامه اندروید به زبانی ساده؛ برنامه نویس اندروید شوید (قسمت پنجم)

نرم‌افزار App Inventor به ما کمک کرد تا راحت‌تر از همیشه به ساخت برنامه اندروید بپردازیم. بعد از ایجاد نرم‌افزار اندرویدی خود، در آخرین قسمت کمی آن را توسعه می‌دهیم.

نرم‌افزار تحت وب App Inventor بهانه‌ای شد تا یک دوره برنامه‌نویسی مقدماتی و بسیار پایه‌ای اندروید را آغاز کنیم. این برنامه آنلاین که توسط محققان دانشگاه مطرح MIT توسعه پیدا کرده است، ابزارهای آماده زیادی در دل خود دارد که سبب می‌شود برای ساخت اپلیکیشن اندرویدی، تا حد ممکن نیاز به کدنویسی از بین برود. تنها کافی است قطعه کدهایی که به صورت بخش‌بندی شده تحت بلاک‌های گوناگون قرار گرفته‌اند را با استفاده از تکنیک کشیدن و رها کردن به درون قسمت‌های مختلف برنامه خود بیندازید.

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

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

همان‌طور که در اولین قسمت استفاده از اندروید استودیو به منظور آموزش برنامه‌نویسی اندروید به آن اشاره کردیم، App Inventor تا یک حد مشخص جوابگوی نیازهای ما است و برای جلو رفتن در پروژه، خواه ناخواه باید درگیر کدنویسی شویم. یکی دیگر از پیش‌نیازهای موفقیت در دنیای برنامه‌نویسی اندروید، تسلط به اندروید استودیو است. پس باید نحوه ایجاد یک کپی از پروژه کنونی را بلد باشید. در غیر این صورت از صفحه آموزش روش انجام این کار در وب سایت Stackoverflow کمک بگیرید.

ما از یک اندروید Intent برای فراخوانی صفحه (Activity) ویرایشگر از صفحه اصلی استفاده کردیم، اما روش ساده‌تری نیز به منظور صدا کردن دیگر اپلیکیشن‌ها وجود دارد. با اضافه کردن چندین خط کد، Intent ما درخواستی را برای اپلیکیشن‌های مدیریت فایل ارسال کرده و منتظر پاسخ می‌نشیند.

وادار کردن Intent به پس دادن یک رشته (شی متن جاوا) که بتوان از آن استفاده کرد کار ساده‌ای نبود، اما یک جستجوی ساده در گوگل سبب شد پاسخ پرسش خود را دریافت کنیم. این پاسخ‌ها برخی شامل کدهای آماده‌ای بودند که توانستیم خیلی راحت از آن‌ها حین ساخت برنامه اندروید خود استفاده کنیم.

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

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

جاوا به اندازه‌ای گسترده است تا این قابلیت‌ها و هر چیز دیگری که به ذهنتان می‌رسد با استفاده از آن قابل پیاده‌سازی باشد.

توزیع اپلیکیشین اندرویدی ایجاد شده

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

بعد از ساخت برنامه اندروید و پیش از نصب آن بر روی تبلت یا گوشی موبایل خود باید چند قدم بردارید. باید یاد بگیرید چگونه اپلیکیشن خود را در قالب یک پکیج قابل نصب در بیاورید.

توزیع کد منبع اپلیکیشن

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

یکی از مهمترین ویژگی‌های App Inventor که آن را تبدیل به ابزاری خوب برای ساخت برنامه اندروید می‌کند، مخفی کردن و عدم نمایش کدهای اغلب در هم پیچیده برنامه به کاربر است. در واقع پشت تمامی بلاک‌هایی که در جای جای اپلیکیشن قرار می‌دهید، بسته به کاربرد هر یک، چندین خط کد قرار دارد و کاربر آن را به صورت حاضر و آماده استفاده می‌کند. اما برای گرفتن خروجی از کد اپلیکیشن نوشته شده در App Inventor چه باید کرد؟

ابتدا پروژه خود را باز کرده و سپس از منوی Projects، گزینه Export Selected Project (.aia) To My Computer را انتخاب کنید.

با این کار، فایل دارای پسوند aia دانلود خواهد شد. به نظر می‌رسد این فرمت آرشیو App Inventor است. اما در نهایت با یک فایل Zip سر و کار خواهید داشت. آن را با استفاده از یک نرم‌افزار همچون Winrar باز کنید.

توجه کنید محتویات فولدر appinventor/ai_[your user id]/[project name] یک فایل SCM و BKY است. این‌ها کدهای منبعی که در اندروید استودیو مشاهده می‌کنیم نیستند، به همین دلیل قادر به باز کردن آن‌ها در محیط‌های برنامه‌ نویسی قدیمی و کامپایل کردنشان نخواهید بود. با این حال می‌توان در هر زمان دیگر، آن‌ها را در App Inventor بارگذاری (Import) کرده و کار توسعه و یا تغییر کدهای نوشته شده را از سر گرفت.

دریافت کد اپلیکیشن حین توسعه آن در اندروید استودیو کار ساده‌تری است. کافی است به قسمت پروژه‌ها وارد شده و فولدر مربوط به این پروژه را تبدیل به یک فایل Zip کنید. سپس آن را به محلی دیگر انتقال داده و به صورت عادی باز کنید.

اندروید استودیو تنظیمات پروژه (workspace.xml) را خوانده و همه چیز را به حالت عادی و زمان اولیه ساخت برنامه اندروید برمی‌گرداند.

البته با فشرده کردن کل فولدر، چندین فایل اضافی نیز ذخیره می‌شوند، در حالی که امکان ایجاد مجدد آن‌ها حین سری‌های بعدی بیلد کردن پروژه وجود دارد. در هر صورت بودنشان ضرری ندارد، اما با آن‌ها، آرشیو کد منبع اپلیکیشن تمیزتر خواهد بود.

اگر می‌خواهید بعد ساخت برنامه اندروید خود آن را برای تست یا هر دلیل دیگر در اختیار فرد دیگری قرار دهید، بهترین و سرراست‌ترین کار، ارسال فایل نصبی دارای پسوند apk برای وی است. کمک گرفتن از وب سایت‌هایی همچون F-Droid می‌تواند پیشنهاد خوبی باشد.

ایجاد فایل دارای پسوند apk در App Inventor

به این منظور به منوی Build رفته و گزینه App (Save .apk To My Computer) را انتخاب کنید. با این کار ساخت فایل نصبی اپلیکیشن آغاز می‌شود. بعد از اتمام قادر به دریافت فایل نهایی خواهید بود.

ایجاد فایل دارای پسوند apk در اندروید استودیو

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

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

اما برای آن دسته از توسعه‌دهندگان که بعد از ایجاد چندین اپلیکیشن اندرویدی، اکنون به طور جدید تصمیم دارند فعالیت در گوگلی پلی استور را آغاز کنند، سه فرآیند مهم وجود دارد:

  • ثبت نام به عنوان یک توسعه‌دهنده: با ورود به این صفحه در وب سایت Google می‌توانید پروفایل خود را به عنوان یک توسعه‌دهنده تکمیل کنید. در ادامه وارد یک صفحه ثبت نام می‌شوید که شامل چندین گزینه است. یکی از بخش‌های ثبت نام، پرداخت ۲۵ دلاری است که در بالا به آن اشاره کردیم.
  • آماده کردن اپلیکیشن برای فروشگاه: نسخه‌های شبیه‌ساز برنامه که تاکنون آن‌ها را تست می‌کردید، به عنوان نسخه‌های اشکال‌زدایی شناخته می‌شوند. پس آن‌ها قطعات کد به مراتب بیشتری دارند که مربوط به عیب‌یابی و ورود به سیستم هستند که البته ضرورتی نیز ندارند. حتی ممکن است وجودشان نگرانی‌هایی از لحاظ حریم خصوصی ایجاد کند. پیش از انتشار در گوگل پلی استور، می‌بایست یک نسخه نشر با استفاده از روش‌های ذکر شده در وب سایت Developer.Android ایجاد کنید. یکی از مراحل این فرآیند، قرار دادن یک کلید رمزنگاری در اپلیکیشن است.

  • سازمان خود را بنا کنید: یکی دیگر از مراحل اشتراک‌گذاری در گوگل پلی بعد از ساخت برنامه اندروید، ایجاد یک صفحه فروشگاه برای خود است. سازمان و زیربنای شما ممکن است شامل چندین سرور باشد که قرار است اپلیکیشن، داده‌های خود را با آن‌ها همگام‌سازی کند. در صورت نیاز باز هم می‌توانید از وب سایت Developer.Android کمک بگیرید.
  • در نهایت اگر می‌خواهید پرداختی بابت این اپلیکیشن به شما صورت بگیرد، می‌بایست مشخصات پرداختتان را تکمیل کنید. این مورد جزییات زیادی داشته و کمی زمان‌بر است.

خلاصه کلاس ساخت برنامه اندروید و نتیجه‌گیری

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

  • دو روش را برای ایجاد یک اپلیکیشن اندرویدی بررسی کردیم؛ نخست از تکنیک‌های ساده کشیدن و رها کردن و کار با موس به واسطه ابزار آنلاین App Inventor استفاده کرده و سپس اپلیکیشن را از ابتدا، با کدنویسی در اندروید استودیو ایجاد کردیم. مورد نخست نیاز به آموزش کمتری داشت و با وجود محدودیت‌های آن، کاربر می‌توانست از قطعه‌های مختلف بدون درگیر شدن با کدهای پشت آ‌ن‌ها استفاده کند. مورد دوم، نیاز به زمان بیشتری داشته و نمی‌توان از آن طی مدت زمانی کوتاه استفاده کرد. اما از طرفی دیگر، بدون محدودیت است. با زبان جاوا هر کاری می‌توان انجام داد.

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

آموزش ساخت برنامه اندروید به زبانی ساده؛ برنامه نویس اندروید شوید (قسمت سوم)

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

در قسمت اول آموزش برنامه‌نویسی اندروید به دلایل یادگیری روش ایجاد یک اپلیکیشن اندرویدی اشاره کرده و ابزار آنلاین App Inventor که توسط محققان دانشگاه MIT توسعه پیدا کرده است را معرفی کردیم. در قسمت دوم مقدماتی از نحوه استفاده از ابزار App Inventor و چگونگی نصب و راه‌اندازی شبیه‌ساز آن را ذکر کردیم. اکنون که نخستین لایه‌بندی را در ساخت اپلیکیشن اندرویدی خود انجام داده‌ایم، بهتر است بیشتر به توسعه قابلیت‌های این ابزار نوت‌برداری بپردازیم.

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

در جعبه سمت چپ صفحه آیتم‌هایی همچون کنترل (Control)، نوشته (Text) و متغیرها (Variables) در دسته‌بندی Built-in دیده می‌شود. بخش‌هایی که در این دسته‌بندی‌ها وجود دارند، براساس عملکرد از یکدیگر جدا شده‌اند. در واقع نام آن‌ها به خوبی عملکردشان را نشان می‌دهد. به عنوان نمونه آیتم ریاضی (Math) قادر به انجام اعمال محاسباتی است.

در پایین این قسمت لیستی از عناصر صفحه‌ها وجود دارد. بلاک‌هایی که در اینجا قرار دارند، عناصر صفحه‌های شما را تحت تاثیر قرار می‌دهند. به عنوان نمونه، کلیک کردن بر روی یکی از برچسب‌ها (Label)، بلاک‌هایی که می‌توانند نوشته آن برچسب را تغییر دهند را نشان می‌دهد. اما دکمه‌ها (Buttons) شامل بلاک‌هایی هستند که عملکرد بعد از کلیک شدن بر روی آن‌ها را تعریف می‌کنند.

علاوه بر دسته‌بندی‌ها که براساس رنگ از یکدیگر جدا شده‌اند، هر بلاک دارای یک شکل خاص است که هدف و کاربرد آن را نشان می‌دهد. این شکل‌ها به صورت زیر تقسیم می‌شوند:

  • می‌توان به آیتم‌های دارای شکاف بزرگ در وسط خود همچون if-then که در بالا نمایش داده شده است، به چشم یکی از رخدادها (events) کنترل نگاه کرد. وقتی بعد از ساخت برنامه اندروید اتفاقی در آن رخ می‌دهد، سایر دستوراتی که در شکاف این قسمت قرار دارند اجرا می‌شوند.
  • بلاک‌های تخت دارای اتصال ممکن است statements و یا expressions باشند. ابتدا توضیحات (statements) هستند که هم‌ارز فرمان‌ها محسوب می‌شوند. آیتم‌های در جریان بالا نشان‌دهنده آن‌ها هستند. در عکس بالا، بلاک‌های close application و make a list یک توضیح محسوب می‌شوند.
  • حالت دوم عبارات (expressions) است که کمی با statements تفاوت دارد. به عنوان نمونه یک توضیح می‌گوید «این را بر روی عدد ۴۲ قرار بده». اما در یک عبارت گفته می‌شود «۲۲ را به ۲۰ اضافه کن و نتیجه را به من برگردان». در تصویر بالا، is in list یک عبارت است که صحیح یا غلط بودن را ارزیابی می‌کند. عبارات نیز بلاک‌های تخت و مسطح هستند، اما معمولا در سمت چپ خود دارای یک تب بوده و در سمت راست یک بریدگی و شکاف دارند.
  • در نهایت با متغیرها (values) سر و کار داریم که اعداد (مثل «۴۲» یا «۱۷»)، رشته‌ای از حروف (مثل «عبارت یک» یا «عبارت دو») و یا صحیح و غلط را شامل می‌شوند.

App Inventor یک ابزار کامل است و یادگیری نحوه صحیح استفاده از آن برای ساخت برنامه اندروید نیازمند آزمون و خطا است، پس، از کلیک کردن بر روی دکمه‌ها و قسمت‌های مختلف ترس نداشته باشید. اما همیشه کاربرد هر دکمه و نتیجه کلیک کردن بر روی آن را به خاطر بسپارید.

در صفحه ابتدایی، دو آیتم وجود دارند (دکمه‌ها) که نیازمند توجه بیشتری هستند. Button2 در زمان کلیک شدن بر روی آن اپلیکیشن را می‌بندد. از آنجایی که قرار است بعد از کلیک بر روی این دکمه فعل و انفعالاتی صورت بگیرد، با جستجو در بلاک دکمه‌ها، به دنبال عبارت when Button2.click می‌گردیم. این عبارت مشخص می‌کند وقتی بر روی این دکمه کلیک شد، یک کار خاص انجام شود. بعد از یافتن آیتم، آن را با تکنیک کشیدن و رها کردن به درون صفحه بیندازید.

حال می‌خواهیم وقتی این دکمه لمس شد برنامه بسته شود. در قسمت Built-in و در زیرشاخه Control، بلاکی با عنوان close application را مشاهده می‌کنیم. آن را کشیده و به درون شکاف سفید رنگی که جلوی کلمه do قرار دارد بیندازید.

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

ساخت دومین صفحه (صفحه ویرایش)

اکنون تمرکز خود را بر روی دکمه نخست (Button1) قرار می‌دهیم. لمس این دکمه قرار است ویرایشگر برنامه ما را باز کند. پس ابتدا باید از وجود خود این ویرایشگر مطمئن شویم! به نحوه نمایش Designer بازگشته و یک صفحه جدید با برچسب مشابه صفحه نخست ایجاد می‌کنیم.

همچنین باید یک TextBox ایجاد کنیم. در بخش گزینه‌های آن، عرض (Width) را بر روی حالت fill parent قرار داده و ارتفاع (Height) را بر روی ۵۰ درصد تنظیم کنید. همچنین Multiline باید فعال باشد. این بخش قرار است محتوای ما را در دل خود نگه دارد. به یک دکمه دیگر نیز با برچسب << Save نیاز داریم. بعد از ایجاد این موارد، تغییرات اعمال شده را در شبیه‌ساز تست کنید.

پیش از ادامه سایر مراحل ساخت نرم‌افزار اندروید، باید یک نکته مهم را یادآور شویم. قرار است محتواهای درون TextBox را یکی پس از دیگری انباشته کنیم که نیاز به ذخیره‌سازی داده‌ها را نشان می‌دهد. چندین راهکار برای حل این مسئله وجود دارد.

سرراست‌ترین مورد File است. از آنجایی که ما فقط یک متن ساده می‌خواهیم، این نوع کاملا کافی خواهد بود. وقتی این مورد را در Viewer قرار دهید، متوجه عدم نمایش آن می‌شوید، چرا که File یک کامپوننت غیر قابل مشاهده است. البته دلیلی نیز برای نمایش آن به کاربر وجود ندارد. این بخش تمامی وظایف خود را در پس‌زمینه انجام داده و محتواهای اپلیکیشن را در قالب یک فایل در حافظه دستگاه ذخیره می‌کند. اما در هر صورت اگر دوست دارید این آیتم قابل مشاهده باشد، کافی است تیک کنار Display hidden components in Viewer را بزنید.

به حالت نمایش Blocks برگردید تا برای پیشبرد ساخت برنامه اندروید خود چند دستور به آن اضافه کنیم. تنها عملکرد مورد نیاز، تعیین شیوه رفتار اپلیکیشن بعد از لمس دکمه << Save است. پس به بلاک when Button1.click نیاز است. در این قسمت توانایی‌های App Inventor به خوبی نمایان می‌شوند!

ابتدا محتوای TextBox را با گرفتن بلاک call File1.saveFile ذخیره کرده و در درون آن نوشته دلخواه خود را قرار می‌دهیم. برای این کار باید از TextBox1.text که وظیفه آن بازگرداندن محتواها است استفاده کرد. همچنین باید برای ذخیره‌سازی این نوشته یک فایل ایجاد کنیم. کافی است مسیر و نام فایل Text Block را مشخص کنید. اگر این فایل وجود نداشته باشد، اپلیکیشن آن را ایجاد خواهد کرد.

اکنون باید صفحه را برای بارگذاری محتواهای این فایل در زمان باز شدن آن تنظیم کنیم. برای این کار از بلاک when Editor.initialize در Editor استفاده کنید. با کمک آیتم call File1.ReadFrom به فایل خود اشاره می‌کنیم. می‌توان نتیجه خواندن فایل متنی را با استفاده از File > when File1.GotText ثبت کرده و محتوای آن را به کمک بلاک TextBox > set TextBox.Text to به TextBox ارجاع داد. سپس باید مقدار get text را به آن داد. در نهایت و بعد از ذخیره، به یک کلیک بر روی Button1 نیاز داریم تا ما را به صفحه اصلی بازگرداند. برای این کار از یک بلاک close screen استفاده می‌کنیم.

آخرین گام، بازگشت به صفحه اصلی و تنظیم نخستین دکمه است. در واقع می‌خواهیم این دکمه ما را به صفحه ویرایشگر منتقل کند. با استفاده از بلاک Control > open another screen این کار همچون آب خوردن خواهد بود! البته در جلوی آن باید به Editor اشاره کنید.

قدم بعدی در ساخت برنامه اندروید

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

یکی از اولین قدم‌هایی که به ذهن می‌آید، افزودن قابلیت انتخاب از میان چندین فایل است. اما با یک جستجوی ساده در گوگل متوجه می‌شوید این قابلیت به چند ترفند حرفه‌ای نیاز دارد. برای افزودن آن و همچنین سایر قابلیت‌ها، از اندروید استودیو استفاده کرده و از زبان برنامه‌نویسی جاوا کمک می‌گیریم. در قسمت بعد، کار توسعه اپلیکیشن ساده خود در اندروید استودیو را پیش می‌گیریم.

آموزش ساخت برنامه اندروید به زبانی ساده؛ برنامه نویس اندروید شوید (قسمت دوم)

ساخت برنامه اندروید آن طور که تصور می‌کنید مشکل نیست. برای ساخت اپلیکیشن اندروید می‌توان از ابزارهای آنلاین کمک گرفت و در زمانی کوتاه نرم‌افزار خود را ایجاد کرد.

در نخستین قسمت آموزش ساخت برنامه اندروید به زبانی ساده، اهداف و مقدمات برنامه‌نویسی اندروید را بیان کرده و ابزاری بسیار ساده و قدرتمند را به این منظور معرفی کردیم. App Inventor، ابزاری آنلاین برای ایجاد برنامه اندروید بدون داشتن دانش کدنویسی بوده و توسط دانشگاه MIT ارائه شده است. اگر نخستین قسمت این مجموعه آموزشی را مطالعه نکرده‌اید ابتدا آن را مرور کرده و سپس در این قسمت روش ساخت برنامه اندروید همراه با ما باشید.

ساخت برنامه اندروید با App Inventor

برای استفاده از App Inventor به منظور ساخت نرم‌افزار اندروید نیاز به نصب هیچ برنامه‌ای نیست، چرا که با یک ابزار تحت وب طرف هستیم و تنها راه دسترسی به آن، استفاده از یک مرورگر وب است. به محض ورود به وبسایت App Inventor، در گوشه بالا و سمت راست صفحه گزینه !Create apps را مشاهده خواهید کرد.

برای استفاده از سرویس باید در مرورگری که در حال استفاده از آن هستید، به حساب کاریری خود در گوگل لاگین کرده باشید. در غیر این صورت، با کلیک بر روی گزینه !Create apps، ابتدا به صفحه لاگین گوگل منتقل می‌شوید.

در صورت لاگین بودن، به صورت مستقیم به صفحه پروژه من (My Projects) منتقل خواهید شد.

بهتر است از همین ابتدا، روش تست برنامه را برای خود مشخص کنید. اگر کاربری ماجراجو هستید، می‌توانید این کار را به وسیله نصب برنامه MIT AI2 Companion از گوگل پلی استور بر روی گوشی یا تبلت اندرویدی خود انجام دهید.

روش دیگر، استفاده از یک شبیه ساز اندرویدی برای تست پروژه بر روی سیستم کامپیوتری است. شبیه‌سازهای بسیار زیادی وجود دارند، اما می‌توانید از Emulator in AI2 که باز هم توسط محققان دانشگاه MIT توسعه پیدا کرده استفاده کنید. تصویر زیر نشان‌دهنده نسخه لینوکسی این برنامه است، اما خوشبختانه برای پلتفرم‌های ویندوز و مک نیز نسخه‌هایی وجود دارند.

بعد از نصب آن بر روی سیستم ویندوزی، میانبر برنامه به صورت خودکار بر روی دسکتاپ قرار خواهد گرفت. بعد از نصب نسخه مک، برنامه به صورت خودکار اجرا می‌شود. اما برای اجرای آن در لینوکس می‌توان از کامند “aiStarter” استفاده کرد. با این کار، یک فرآیند در پس‌زمینه اجرا شده و شبیه‌ساز، به فضای ابری App Inventor متصل می‌شود. کاربران لینوکس باید دستور زیر را در ترمینال دنبال کنند.

/usr/google/appinventor/commands-for-appinventor/aiStarter &

به محض اجرا شدن، می‌توانید اتصال را با کلیک بر روی آیتم Emulator در منوی Connect تست کنید. اگر شبیه‌ساز را همانند تصویر زیر مشاهده کردید، فرآیند به طور صحیح پیش رفته است.

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

صفحه نخست در ابتدا کارایی زیادی ندارد، اما در ادامه و بعد از افزودن قابلیت‌های بیشتر به آن در پروژه‌های بعدی، حتما به کار خواهد آمد. متنی که در صفحه ویرایش ذخیره می‌شود، در یک فایل متن آشکار (Plain Text) انباشته خواهد شد.

ایجاد پروژه در App Inventor

نخستین قدم، ایجاد یک پروژه جدید است. بر روی دکمه Start New Project کلیک کنید. امکان دسترسی به این گزینه از طریق منوی Projects نیز وجود دارد.

در صفحه بعد برای پروژه خود یک اسم انتخاب کنید.

اکنون وارد مرحله طراحی می‌شوید. به منظور ساخت نرم‌افزاری اندرویدی با App Inventor و استفاده از تمام قابلیت‌های آن، باید با بخش‌های مختلف برنامه آشنا شوید. در پایین عکس، توضیح مربوط به هر بخش را در مقابل شماره آن خواهیم نوشت.

  1. در نوار عنوان شاهد نام پروژه خواهید بود (پروژه ما muoScratchpad نام دارد). از همینجا می‌توانید بین صفحه‌های اپلیکیشن خود جابه‌جا شده و یا یک مورد به آن‌ها بیفزایید یا حذف کنید. از همین قسمت نیز می‌توانید نحوه نمایش بخش‌های مختلف App Inventor را تغییر دهید.
  2. قسمت Palette در سمت چپ صفحه شامل تمامی کنترل‌ها و ویجت‌ها است. برای سهولت در استفاده و یافتن سریعتر موارد دلخواه، آن‌ها به قسمت‌های مختلف همچون User Interface و Storage تقسیم شده‌اند. اگر نحوه نمایش قسمت‌های مختلف را به Blocks تغییر دهید، آیتم‌ها به شیوه‌ای دیگر نمایش دیده خواهند شد.
  3. بخش Viewer در واقع یک WYSIWYG بوده و نحوه پیش رفتن پروژه در هر لحظه، به ازای اضافه یا کم شدن قابلیتی جدید را نمایش می‌دهد.
  4. بخش Components متشکل از آیتم‌هایی است که در صفحه کنونی مورد استفاده قرار داده‌اید. وقتی یک دکمه، نوشته، جعبه و یا آیتمی از بخش Palette به صفحه خود اضافه می‌کنید، آن‌ها در اینجا دیده خواهند شد. برخی از آیتم‌های مخفی همچون ارجاع به فایل‌ها که بخشی از رابط کاربری نیستند نیز در این بخش به نمایش در می‌آیند.
  5. بخش Media به کاربر اجازه می‌دهد هر فایل مورد نیاز برای تکمیل پروژه را به برنامه اضافه کنید. به عنوان نمونه می‌توانید فایل‌‌های تصویری و صوتی را در اینجا بارگذاری کرده و در پروژه استفاده کنید.
  6. در نهایت به قسمت Properties می‌رسیم که اجازه می‌دهد ویجت‌های انتخاب شده را بسته به نیاز خود تنظیم و بخش‌هایی از آن‌ها را تا جای ممکن سفارشی‌سازی کرد. به عنوان نمونه اگر بر روی یک ویجت عکس کلیک کرده باشید، گزینه‌هایی برای تغییر عرض و ارتفاع به نمایش در می‌آیند.

لایه‌بندی نخستین صفحه

بر اساس پروژه ساخت برنامه اندروید خود، به یک برچسب برای نام اپلیکیشن، یک برچسب برای نوشته کمک، یک دکمه برای انتقال کاربر به صفحه ویرایش و یک دکمه برای خروج احتیاج داریم. پس از بخش User Interface در داخل Palette، با استفاده از تکنیک کشیدن و رها کردن دو Label و دو Button به داخل صفحه بیندازید. از بالای صفحه، آن‌ها را به صورت یک ستون عمودی درست کنید.

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

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

هرگز به صورت پشت سر هم لیستی از آیتم‌ها را در داخل صفحه نیندازید، چرا که در صورت برخورد کردن به یک مشکل ایرادیابی مشکل‌ می‌شود. اگر ترجیح می‌دهید به جای شبیه‌ساز App Inventor، اپلیکیشن را بر روی یک گوشی یا تبلت اندرویدی واقعی تست کنید، برنامه AI2 Companion که بر روی دستگاه اندرویدی خود دانلود و نصب کرده‌اید را باز کرده و با استفاده از اسکنر QR کد و یا کد شش رقمی ایجاد شده، اپلیکیشن تحت وب و برنامه اندرویدی این سرویس را به هم وصل کنید.

برای پیش نمایش برنامه با استفاده از شبیه‌ساز، از اجرا کردن برنامه aiStarter که در بالا توضیح دادیم مطمئن شوید. سپس آیتم Emulator را از منوی Connect انتخاب کنید. بعد از چند ثانیه شبیه‌ساز ظاهر شده و صفحه‌ای تقریبا همانند بخش Viewer را نمایش می‌دهد.

یکی از مزیت‌‌های شبیه‌ساز App Inventor، نمایش تغییرات به محض اعمال آن‌ها در خود برنامه است. در قسمت سوم، نحوه اضافه کردن قابلیت‌های جدید به برنامه را آموزش می‌دهیم.

آموزش ساخت برنامه اندروید به زبانی ساده؛ برنامه نویس اندروید شوید (قسمت اول)

ساخت برنامه اندروید مقدمات و ملزوماتی دارد که در ادامه با آن‌ها آشنا می‌شویم. با یاد گرفتن این آموزش‌ها می‌توانید اپلیکیشن و نرم‌افزار اندرویدی خود را ایجاد کنید.

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

مقدمه‌ای بر ساخت برنامه اندروید

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

روش دوم استفاده از ابزارهای آماده و آنلاین است که به کاربر کمک می‌کنند بدون نیاز به داشتن دانش برنامه‌نویسی و تنها با حرکت ماوس، ساخت نرم‌افزار اندرویدی خود را آغاز کنند! البته این بیلدرها آن‌چنان ابتدایی نبوده و مخاطب برخی از آن‌ها کاربران حرفه‌ای است.

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

در ادامه به ساخت برنامه اندرویدی خود می‌پردازیم. این اپلیکیشن نسخه‌ای بسیار ساده از یک دفترچه یادداشت است که می‌توان نوشته‌های خود را درون آن ذخیره کرد. ابتدا آن را با استفاده از App Inventor ایجاد کرده و نتیجه را در یک شبیه‌ساز اندروید اجرا می‌کنیم.

در ادامه برنامه را گسترش داده و قابلیت انتخاب از میان چند فایل را به آن اضافه کنیم تا بیشتر شبیه به یک برنامه نوت‌برداری کامل شود. البته برای قسمت دوم و توسعه بیشتر اپلیکیشن باید دست به دامن زبان جاوا شویم و از برنامه ویندوزی اندروید استودیو کمک بگیریم.

دلایل نیاز به توسعه یک اپلیکیشن اندرویدی

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

  • آموزش: بهترین راه یاد گرفتن یک زبان برنامه‌نویسی، تلاش برای ساخت یک برنامه با استفاده از آن است. با ساعت‌ها مطالعه و آشنایی با زیر و بم یک زبان برنامه‌نویسی، هرگز قادر به استفاده از آن نخواهید بود، مگر اینکه دست به کار شده و آن را به صورت عملی یاد بگیرید.
  • کسب درآمد: برنامه‌نویسی جزو شغل‌های دارای درآمد خوب است. با توجه به محبوبیت اندروید و قدرت گرفتن بیش از دو میلیارد دستگاه در سراسر جهان از آن، ساخت برنامه اندروید می‌تواند روشی مناسب برای کسب درآمد باشد.

هدف هر چیزی که باشد، توسعه یک برنامه مهارت‌های طراحی، فنی و منطقی شما را درگیر خواهد کرد. وب سایت App Inventor و زبان برنامه‌نویسی جاوا نمونه‌‌ای از روش‌های ساخت برنامه اندروید هستند. می‌توان این کار را با استفاده از سایر زبان‌های برنامه‌نویسی و همچنین چندین ابزار آماده دیگر انجام داد.

ابزارهای ساده و ابتدایی

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

مزیت شروع کار با این ابزارهای آماده، آگاهی پیدا کردن از کلیات کار است. یک فرد تازه وارد معمولا با مفاهیم ابتدایی برنامه‌نویسی نیز آشنایی ندارد، اما با پیش رفتن در پروژه، بدون درگیر شدن با کدهای پیچیده رفته رفته با آن‌ها آشنا می‌شود. App Inventor ابزاری مناسب برای آغاز است. این پلتفرم توانمند رایگان بوده و بعد از ورود به آن می‌توان طی چند دقیقه و با چند کلیک ساده، نرم‌افزار اندرویدی خود را ایجاد کرد. برای تست و مشاهده برنامه باید آن را در گوشی موبایل و تبلت و یا شبیه‌ساز اندرویدی نصب شده در کامپیوتر تست کنید.

بعد از ورود به وب سایت App Inventor، کمی به پایین اسکرول کرده و بر روی قسمت Get Started کلیک کنید.

در صفحه بعد بر روی اولین لینکی که مشاهده می‌کنید کلیک کنید.

برای ادامه کار باید به یکی از حساب‌های کاربری گوگل خود متصل شوید. بعد از لاگین کردن و پیش از امکان استفاده از ابزار، باید به یک پرسش‌نامه دو صفحه‌ای پاسخ دهید. در ادامه می‌توان به ساخت برنامه اندروید خود پرداخت.

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

حذف و یا تغییر نام هر قسمت اضافه شده به صفحه نمایش از طریق بخش Components ممکن است.

بعد از اتمام کار باید برنامه را دانلود و بر روی دستگاه اندروید خود نصب کنید. دو راه دیگر، استفاده از شبیه‌سازهای ویندوزی و لینوکسی و یا استفاده از ابزارهای شبیه‌ساز اندروید آنلاین است. در قسمت بعدی ساخت برنامه اندروید خود را با استفاده از App Inventor آغاز می‌کنیم.

منبع: گجت‌نیوز

آموزش PHP: جلسه بیست و چهارم: شیءگرایی (بخش پایانی)

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

طی سه جلسه‌ی قبل، در مورد شیءگرایی در پی‌اچ‌پی بحث کردیم و به صورت مرحله به مرحله تا گام ۱۷ پیش رفتیم. در این جلسه مراحل پایانی یادگیری شیءگرایی را خواهیم آموخت.

مرحله‌ی هجدهم:

ارث‌بری، استفاده مجدد از کدهای نوشته شده با ساختار OOP

ارث‌بری یکی از قابلیت‌های اساسی در برنامه‌نویسی شیءگرا محسوب می‌شود و با استفاده از آن می‌توانید از یک کلاس به عنوان ساختار پایه برای کلاس‌های دیگر بهره ببرید.

چرا باید این‌کار را انجام دهیم؟ زیرا این عمل به شما اجازه می‌دهد تا به صورت بهینه‌تری از کدهای نوشته‌ شده‌ی قبلی خود و نیز کدهای نوشته شده توسط دیگران، برای پیشبرد پروژه بهره ببرید.

فرض کنید که قصد ایجاد یک کلاس جدید به نام employee (کارمند) را دارید. از آنجا که هر کارمند یک شخص نیز است، بنابراین این دو می‌توانند پروپرتی‌ها و متدهای مشترکی داشته باشند.

آیا این روش منطقی به نظر می‌رسد؟

با استفاده از ویژگی‌های ارث‌بری می‌توانید کد کمتر و بهینه‌تری را تولید کنید چراکه فقط موارد اضافه را باید به کلاس جدید اضافه کنید و در واقع می‌توان از ویژگی‌های یک کلاس دیگر به منظور ساخت کلاس جدید در پی‌اچ‌پی بهره گرفت. دو عامل زیر از جمله دلایلی تلقی می‌شوند که باعث شده استفاده از ارث‌بری در کلاس‌های پی‌اچ‌پی منطقی به نظر برسد.

  1. شما فقط یک بار باید کد موردنظرتان را بنویسید.
  2. کد اولیه و اصلی مجددا استفاده خواهد شد و می‌توان از آن در هر تعداد کلاس دیگر، استفاده کرد.

از نظر مفهومی ارث‌بری شبیه به عملیات Include کردن است که در جلسات قبل به صورت مفصل آن را توضیح داده بودیم.

نگاهی به کد پی‌اچ‌پی زیر بیاندازید و با دقت آن را بررسی کنید.

// ‘extends’ is the keyword that enables inheritance
class employee extends person
{
      function __construct($employee_name)

     {
            $this->set_name($employee_name);
       }
}

مرحله‌ی نوزدهم:

استفاده مجدد از کدها با استفاده از ویژگی ارث‌بری‌: بخش دوم

از آنجا که کلاس employee بر پایه‌ی کلاس person ایجاد شده است، بنابراین کلاس employee به‌طور خودکار تمامی متدهای عمومی و محافظت‌شده‌ و نیز تمامی پروپرتی‌های عمومی و محافظت‌شده‌ی کلاس person را دارا خواهد بود.

نکته‌ی اضافه: به عبارت دیگر می‌توان گفت که کلاس employee در واقع نوعی دیگر از کلاس person است. به کد نمونه‌ی زیر توجه کنید تا مطلب بیان شده را بهتر درک کنید.

class employee extends person
{
      function __construct($employee_name)

     {
           $this->set_name($employee_name);
      }
}

اما چگونه بدون این‌که متد ()set_name در کلاس employee تعریف شده باشد ما قادر به استفاده از آن خواهیم بود؟

پاسخ: زیرا ما قبلا متد ()set_name را در کلاس person تعریف کرده بودیم و با توجه به ویژگی‌ ارث‌بری در پی‌اچ‌پی، کلاس جدید می‌تواند از متدهای عمومی و محافظت‌شده‌ی کلاس پایه استفاده کند.

نکته: کلاس person در اینجا کلاس پایه یا کلاس والد خوانده می‌شود زیرا کلاس جدیدی که به نام employee ساختیم، به عنوان ساختار پایه از کلاس person بهره گرفته است. سسله‌مراتب همیشه در پروژه‌های مختلف پی‌اچ‌پی یک موضوع مهم است که باید به آن توجه ویژه داشته باشید. این امر به ویژه وقتی که پروژه‌ی شما پیچیده‌تر می‌شود بسیار کارا خواهد بود.

مرحله‌ی بیستم:

استفاده‌ی مجدد از کدهای نوشته‌ شده: بخش سوم

همان‌طور که در کد زیر نیز مشاهده می‌کنید، می‌توانیم متد get_name را در کلاس employee فراخوانی کنیم. کد زیر یک مثال بسیار خوب برای فهم بیشتر این مبحث است.

<?php

       include(“class_lib.php”);

?>
<?php
     // Using our PHP objects in our PHP pages.
     $mojtaba = new person(“mojtaba bolhasani”);
     echo “mojtaba’s full name: ” . $mojtaba->get_name();
     $miaad = new employee(“miaad baferasat”);
     echo “—> ” . $miaad->get_name();
?>

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

مرحله‌ی بیست‌ویک:

اووِر راید کردن متدها

برخی مواقع هنگام استفاده از ویژگی ارث‌بری، ممکن است نیاز به تغییر برخی از توابع کلاس پایه داشته باشید.

به عنوان مثال، اجازه دهید متد ()set_name در کلاس employee را تغییر دهیم به نحوی که این متد در این کلاس نسبت کلاس person تغییر یابد.

در این شرایط شما با تعریف کردن متدی مشابه در کلاس employee، در واقع نسخه‌هایی از متد ()set_name را از کلاس person، اووِر راید کرده‌اید. به کد زیر توجه کنید:

<?php
   class person
   {
         protected function set_name($new_name)

         {
                if ($new_name != “Mojtaba Two Guns”)

                {
                     $this->name = strtoupper($new_name);
                }
         }
   }
   class employee extends person
   {
         protected function set_name($new_name)

         {
                if ($new_name == Mojtaba Bolhasani”)

                {
                      $this->name = $new_name;
                }
         }
   }
?>

توجه داشته باشید که متد ()set_name اکنون و پس از تغییرات بالا در کلاس جدید employee با همین متد در کلاس پایه با همان person تفاوت دارد.

مرحله‌ی بیست‌ودوم:

اووِر راید کردن متدها: بخش دوم

گاهی ممکن است نیاز داشته باشید تا به نسخه‌ی اصلی متدی در کلاس پایه دسترسی داشته باشید که آن را در کلاس جدید اوور راید کرده‌اید.

در مثال ما، متد ()set_name در کلاس employee اوور راید شده است. حالا قصد داریم از کد زیر استفاده کنیم:

person::set_name($new_name);

به منظور دسترسی به نسخه‌ی اصلی متد ()set_name که در کلاس والد (person) وجود دارد، باید از کدی شبیه به زیر استفاده کنیم:

<?php
    class person
    {
      // explicitly adding class properties are optional – but
      // is good practice
      var $name;
      function __construct($persons_name) {
      $this->name = $persons_name;
    }

    public function get_name()

    {
       return $this->name;
    }

    // protected methods and properties restrict access to
    // those elements.
    protected function set_name($new_name)

    {
       if ($this->name != “Mojtaba Two Guns”)

       {
            $this->name = strtoupper($new_name);
       }
    }
}

// ‘extends’ is the keyword that enables inheritance
class employee extends person
{
      protected function set_name($new_name)

      {
            if ($new_name == “Stefan Sucks”)

            {
                 $this->name = $new_name;
            }
            else if ($new_name == “Johnny Fingers”)

            {
                 person::set_name($new_name);
            }
      }
      function __construct($employee_name)
      {
            $this->set_name($employee_name);
      }
   }
?>

نکته: استفاده از سیمبل‌ها (symbol)

::

استفاده از :: برای تشخیص نام کلاسی که قصد داریم از متدهای داخلی آن استفاده کنیم به کار می‌رود. به مثال زیر توجه کنید تا این مبحث را بیشتر توضیح دهیم.

‘person::set_name()’

کد بالا به پی‌اچ‌پی می‌گوید که به دنبال متد ()set_name در کلاس person بگردد.

علاوه بر این یک راه میانبر دیگر برای اشاره به کلاس والد کلاس کنونی وجود دارد. این راه میانبر در واقع استفاده از کلمه‌ی کلیدی parent است. به کد نمونه‌ی زیر توجه کنید:

protected function set_name($new_name)
{
      if ($new_name == “Mojtaba bhs”)

      {
            $this->name = $new_name;
      }
      else if ($new_name == “Miaad Bafer”)

      {
            parent::set_name($new_name);
      }
}

نتجیه‌گیری

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

به یاد داشته باشید بهترین راهی که می‌تواند به شما در یادگیری این روش کمک کند، مثل همیشه نوشتن کد و تمرین است.

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

در پایان اگر سوالی در مورد مباحث این جلسه دارید، لطفا آن را در بخش نظرات با ما و سایر کاربران به اشتراک بگذارید.

 
منبع زومیت

آموزش PHP: جلسه بیست و سوم: شیءگرایی (بخش سوم)

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

در دو جلسه‌ی قبلی ۱۱ مرحله مختلف را گذراندیم تا مبحث شیءگرایی را در پی‌اچ‌پی به روش عملی یاد بگیریم. در ادامه به سراغ مراحل بعدی می‌رویم.

مرحله دوازدهم:

دسترسی مستقیم به پروپرتی‌ها (توصیه نمی‌شود)

برای دسترسی مستقیم به خواص اشیاء ساخته شده در پی‌اچ‌پی، نیازی به استفاده از متدها ندارید. شما می‌توانید به‌طور مستقیم با استفاده از عملگر <- و نام متغیر (پروپرتی) موردنظر، به آن دسترسی داشته باشید.

به عنوان مثال اگر در کلاس پی‌اچ‌پی نوشته شده‌ی خود، یک پروپرتی به نام name$ (در شیء mojtaba$) داشته باشید، برای دسترسی به مقدار این متغیر باید از کدی مثل زیر استفاده کنید:

$name = $mojtaba->name;

البته همان‌طور که اشاره کردیم، استفاده از این روش پیشنهاد نمی‌شود چرا که امکان دارد در ادامه مسیر، با مشکلاتی مواجه شوید. برای دسترسی به مقادیر متغیرها (پروپرتی‌ها) در یک کلاس پی‌اچ‌پی، بهتر است از متدهای دریافت‌کننده یا همان Getter استفاده کنید.

به کد زیر توجه کنید تا آنچه گفته شد را بیشتر درک کنید.

<?php include(“class_lib.php”); ?>
<?php
$mojtaba = new person();
$miaad = new person;

$mojtaba->set_name(“mojtaba bolhasani”);
$miaad->set_name(“miaad baferasat”);

// دسترسی مستقیم به مقدار یک پروپرتی در کلاس که پیشنهاد نمی‌شود
echo “mojtaba’s full name: “.$mojtaba->name;
?>

مرحله سیزدهم:

کانستراکتورها (constructor)

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

نکته: اگر تابعی به نام ()constructــ در کلاس موردنظرتان بسازید، پی‌اچ‌پی به‌طور خودکار متد (تابع) ()constructــ را پس از ساختن هر شیء و در واقع پس از اجرای کلاس، فراخوانی می‌کند.

به یاد داشته باشید که برای تعریف کانستراکتور در ابتدای نام آن باید دو علامت آندراسکور (آندرلاین ــ) قرار دهید و بدون هیچ فاصله‌ یا کاراکتر اضافه‌ای، کلمه‌ی construct را در ادامه‌ی نام آن بنویسید. برای درک بیشتر موضوع، به کد زیر توجه کنید:

<?php
class person {
var $name;
function __construct($persons_name) {
$this->name = $persons_name;
}

function set_name($new_name) {
$this->name = $new_name;
}

function get_name() {
return $this->name;
}

}
?>

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

از آنجا که قصد داریم شیءگرایی را به شما آموزش دهیم پس از همین حالا به بعد از واژگان این ساختار برنامه‌نویسی استفاده خواهیم کرد.

مرحله چهاردهم:

ساختن یک کلاس (شیء) مجهز به کانستراکتور

حالا که ما با نحوه‌ی ساختن کانستراکتور آشنا شده‌ایم، می‌توانیم برای ساخت کلاس person، مقداری را به عنوان پیش‌فرض برای پروپرتی name$ مشخص کنیم. 

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

$mojtaba = new person(“mojtaba bolhasani”);

استفاده از کانستراکتور و مقداردهی ورودی موردنیاز آن باعث می‌شود تا دیگر نیازی به فراخوانی متد ()set_name نداشته باشیم که همین کار باعث می‌شود با نوشتن کد کمتر، بتوان پروژه‌های مسنجم‌تری را ساخت. استفاده از کانستراکتورها همانند سایر زبان‌ها نظیر جاوا و … در بین برنامه‌نویسان این زبان، رایج است. باز هم توجه شما را به مثال زیر جلب می‌کنیم:

<?php include(“class_lib.php”); ?>
<?php
$mojtaba = new person(“mojtaba bolhasani”);
echo “mojtaba’s full name: “.$mojtaba->get_name();
?>

استفاده از مکانسیم شی‌ءگرایی در مثال بالا، یکی از کاربردهای بسیار ساده‌ای است که می‌تواند در زمان و انرژی شما در کدنویسی صرفه‌جویی قابل توجهی کند. به یاد داشته باشید که برنامه‌نویسان حرفه‌ای این نکته را خوب می‌دانند: کد کمتر برابر است با باگ کمتر.

مرحله پانزدهم:

محدود کردن دسترسی به پروپرتی‌ها با اصلاح‌کننده‌های دسترسی

یکی از اصول بنیادی در برنامه‌نویسی شیءگرا، کپسوله‌سازی (encapsulation) است. اگر قصد دارید تا دسترسی به پروپرتی‌های مختلف را در کلاس خود محدود کنید، این ایده به شما کمک می‌کند تا کد خوانا‌تر و بهتری را تولید کنید.

برای محدود کردن دسترسی به پروپرتی‌های کلاس خود، باید از اصلاح‌کننده‌های دسترسی (ٰaccess modifiers) استفاده کنید. در پی‌اچ‌پی نیز مثل بسیاری از زبان‌های خانواده‌ی سی، ۳ عدد اصلاح‌کننده دسترسی موجود است:

  1. public (عمومی)
  2. private (خصوصی) 
  3. protected (محافظ شده)

اصلاح‌کننده‌ی پیش‌فرض برای هر پروپرتی در هر کلاس در پی‌اچ‌پی، Public است. به مثال زیر توجه کنید:

<?php
class person {
var $name;
public $height;
protected $social_insurance;
private $pinn_number;

function __construct($persons_name) {
$this->name = $persons_name;
}

function set_name($new_name) {
$this->name = $new_name;
}

function get_name() {
return $this->name;
}

}
?>

نکته: زمانی که شما یک پروپرتی را با استفاده از کلمه‌ی کلیدی var تعریف کنید، آن پروپرتی به صورت پیش‌فرض عمومی (Public) خواهد بود.

مرحله شانزدهم:

محدود کردن دسترسی به پروپرتی‌ها: بخش دوم

هنگامی که یک پروپرتی را در کلاس‌های پی‌اچ‌پی از نوع private تعیین کنیم، فقط برخی از کلاس‌های دیگر می‌توانند به مقدار این پروپرتی دسترسی داشته باشند.

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

پروپرتی‌هایی که به صورت Public تعریف شده‌ باشند، محدودیت دسترسی نداشته و این یعنی هر کسی و هر کلاسی می‌تواند به مقدار آن‌ها دسترسی یابد.

به منظور فهم بیشتر این بخش تقریبا فرار از شیءگرایی در پی‌اچ‌پی، کد زیر را به دقت مشاهده کرده و آن را خودتان نیز تمرین، تا نتیجه را مشاهده کنید. برای درک بهتر کدها، کامنت‌های موجود در مثال زیر را نیز مطالعه کنید.

<?php include(“class_lib.php”); ?>
<?php
$stefan = new person(“Stefan Mischook”);
echo “Stefan’s full name: ” . $stefan->get_name() ;

/*
Since $pinn_number was declared private, this line of code
will generate an error. Try it out!
*/

echo “Tell me private stuff: “.$stefan->pinn_number;
?>

نکته: اگر بخواهید از طریق یک کلاس دیگر به یک پروپرتی خصوصی (private) در یک کلاس دیگر دسترسی داشته باشید، با خطای PHP مواجه خواهید شد. این خطا چیزی شبیه به متن زیر خواهد بود:

‘Fatal error: Cannot access private property person::$pinn_number in …’

مرحله هفدهم:

محدود کردن دسترسی به متدها درست همانند پروپرتی‌ها، شما می‌توانید دسترسی به متدهای تعریف شده در یک کلاس را با استفاده از ۳ اصلاح‌کننده زیر کنترل کنید.

  1. public (عمومی)
  2. protected (محافظت شده)
  3. private (خصوصی)

به‌طور خلاصه: امکان کنترل کردن دسترسی به متدهای هر کلاس، باعث می‌شود تا بتوانیم روش استفاده‌ی دیگران از آن کلاس را کنترل کنیم.

احتمالا شما هم متوجه شده‌اید که استفاده از محدودکننده‌های دسترسی و دیگر ساختارهای برنامه‌نویسی شیءگرا، کمی زیرکانه خواهد بود. این مورد برای افرادی که به تازگی شروع به یادگیری شیءگرایی کرده‌اند، بیشتر محسوس است. پس بهتر است شما نیز به خود شانسی بدهید و شروع به یادگیری و استفاده از این روش کنید.

با توجه به آنچه اشاره شد، باید بگوییم که ساختار یکپارچه‌ی برنامه‌نویسی شیءگرا باعث می‌شود تا بتوان روی پروژه‌های موجود که با این روش ساخته شده‌اند کار کرد یا پروژه‌های گروهی را به‌طور استانداردتر پیش برد. به کد زیر توجه کنید:

<?php
class person {
var $name;

public $height;
protected $social_insurance;
private $pinn_number;

function __construct($persons_name){
$this->name = $persons_name;
}

private function get_pinn_number(){
return
$this->pinn_number;
}
}
?>

نکته: از آنجا که متد ()get_pinn_number یک متد از نوع خصوصی (private) است، تنها جایی که می‌توان از این متد استفاده کرد، در همین کلاس است. اگر قصد دارید متدهای موردنظر خود را در صفحات پی‌اچ‌پی خود به‌طور مستقیم فراخوانی کنید، مسلما باید آن متدها را به صورت عمومی یا همان Public تعریف کرده باشید.

نکته اضافه: مجددا ذکر این مورد بسیار مهم است که بگوییم شما خودتان باید دست به‌کار شده و کدها را به‌طور عملی بنویسید و سپس آن‌ها را تست کنید. این کار باعث می‌شود تا موضوع موردبحث را بهتر درک کنید.

امیدواریم تا به اینجای مبحث، تمام مراحل را به ترتیبی که گفته شده فرا گرفته باشید. در صورتی که سوالی در مورد مباحث مطرح شده دارید، در بخش نظرات می‌توانید آن‌ را مطرح کنید.

 منبع زومیت

آموزش PHP – جلسه بیست و دوم: شیء گرایی (بخش دوم)

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

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

مرحله ششم:

متغیر this$ 

به کد زیر توجه کنید:

$this->name = $new_name;

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

function get_name() {
return $this->name;
}

در حال حاضر بهتر است this$ را بهعنوان یکی از کلمات کلیدی مخصوص شیءگرایی در پی‌اچ‌پی بشناسید. هنگامی که موتور پردازشی پی‌اچ‌پی به کلمه this$ برسد، می‌داند که چه کاری باید انجام دهد. خبر خوب این‌که شما هم به زودی با کمی تمرین دقیقا متوجه این ساختار خواهید شد و از آن لذت زیادی خواهید برد.

مرحله هفتم:

استفاده از کلاس ساخته شده در صفحه‌ اصلی پی‌اچ‌پی (index.php)

شما نباید هیچگاه در فایل‌های اصلی پروژه‌های خود، به صورت مستقیم اقدام به ساختن کلاس‌های موردنظر کنید. اگر کلاس‌ها را به‌طور مستقیم در فایل‌های اصلی پروژه تعریف کنید این کار باعث می‌شود تا از هدف اصلی شیءگرایی در پی‌اچ‌پی دور شوید.

بهترین کار این است که همیشه برای هر کلاس یک فایل جداگانه php ایجاد کنید تا همه چیز بسیار با نظم و مرتب باشد. سپس در هر فایلی از پروژه پی‌اچ‌پی خود می‌توانید از کلاس‌های مدنظرتان استفاده کنید. برای استفاده از یک کلاس در سایر فایل‌های پی‌اچ‌پی، همان‌طور که احتمالا می‌دانید و بارها نیز به این موضوع اشاره کرده‌ایم، می‌توانید از دستورات include یا require بهره ببرید.

مجددا توجه شما را به کد زیر جلب می‌کنیم.

<?php include(“class_lib.php”); ?>

نکته: توجه داشته باشید که تا به این لحظه هنوز در کلاس خود هیچ چیز نداریم و در ادامه متدها و پروپرتی‌های موردنظرمان را ایجاد خواهیم کرد.

مرحله هشتم:

معرفی کردن/ساختن اشیاء

کلاس‌ها نقشه‌های کلی یا قالب‌های کلی برای اشیاء در پی‌اچ‌پی هستند. تا زمانی که شما instantiation (نمونه‌سازی) را انجام ندهید، در واقع کلاس‌های پی‌اچ‌پی به اشیاء مبدل نخواهند شد.

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

به عبارت دیگر، نمونه‌سازی را می‌توان فرآیند ساخت یک نمونه از یک شیء در حافظه تعریف کرد. اما کدام حافظه؟ منظور ما در اینجا، البته حافظه سرور است. به کد زیر دقت کنید:

<?php include(“class_lib.php”); ?>
<?php
$mojtaba = new person();
?>

نکته: متغیر mojtaba$ در کد بالا یک مرجع برای شیء تازه ساخته شده‌ی person خواهد بود. در اینجا گفتیم که متغیر mojtaba$ یک مرجع است چراکه ما از همین مرجع به منظور کنترل و استفاده از اشیاء کلاس person بهره خواهیم برد.

اگر شما کد بالا را اجرا کنید، هیچ چیزی را در صفحه مشاهده نخواهید کرد. دلیل این امر این است که ما هنوز به پی‌اچ‌پی نگفته‌ایم که چه کاری با شیء تازه ساخته شده‌مان انجام دهد.

مرحله نهم:

کلمه کلیدی “new”

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

براساس روش کارکرد موتور پی‌اچ‌پی، هر شیٔ در واقع ماهیت خود را دارد. اما این منطقی به نظر می‌رسد؟ کد زیر را مشاهده و به دقت آن را بررسی کنید.

<?php include(“class_lib.php”); ?>
<?php
$mojtaba = new person();
$miaad = new person;
?>

نکته: هنگام ساختن یک شیء، اطمینان حاصل کنید که نام آن کلاس را بین علامت ‘ ‘ قرار ندهید. به مثال زیر توجه کنید:

$mojtaba = new ‘person’;

کد بالا باعث ایجاد خطا خواهد شد.

مرحله دهم:

ست کردن خواص اشیاء

حال که دو شیء مجزا از کلاس person را با نام‌های mojtaba$ و miaad$ ساختیم، می‌توانیم پروپرتی‌های آن‌ها را نیز با استفاده از متدهای داخلی کلاس person که پیش از این ایجاد کرده بودیم، تنظیم کنیم.

لطفا به یاد داشته باشید که هر دو شیء mojtaba$ و miaad$ از یک کلاس مشابه ساخته شده‌اند، با این وجود پی‌اچ‌پی این دو را به عنوان دو شیء متفاوت می‌شناسد. به کد زیر توجه کنید:

<?php include(“class_lib.php”); ?>
<?php
$mojtaba = new person();
$miaad = new person;
$mojtaba->set_name(“mojtaba bolhasani”);
$miaad->set_name(“miaad baferasat”);
?>

مرحله یازدهم:

دسترسی به داده‌های شیء‌ها

حال ما از متدهای دریافت‌کننده استفاده می‌کنیم تا به داده‌هایی که در شیء‌های خود داریم، دسترسی داشته باشیم. این داده‌ها همان اطلاعاتی هستند که با استفاده از متدهای تنظیم‌کننده (ست‌کننده) در اشیاء ایجاد شده (mojtaba$ و miaad$) ذخیره کردیم.

هنگام دسترسی به متدها و پروپرتی‌های یک کلاس باید از عملگر <- استفاده کنیم. به کد زیر با دقت نگاه کنید.

<?php include(“class_lib.php”); ?>
<?php
$mojtaba = new person();
$miaad = new person;

$mojtaba->set_name(“mojtaba bolhasani”);
$mihaad->set_name(“miaad baferasat”);

echo “mojtaba’s full name: ” . $mojtaba->get_name();
echo “miaad’s full name: ” . $miaad->get_name();
?>

نکته: توجه داشته باشید که عملگر <- در اینجا به عملگر <- در آرایه‌ها شباهتی ندارد.

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

  • یک کلاس پی‌اچ‌پی طراحی کردید
  • چندین شیء را براساس کلاس ساخته شده خود ایجاد کردید
  • داده‌های موردنظرتان را در اشیاء ساخته شده وارد کردید
  • به داده‌های موردنیاز در اشیاء ساخته شده دسترسی پیدا کردید

تا همین‌جا شما پایه و اساس شیءگرایی را در پی‌اچ‌پی فراگرفته‌اید. در جلسه‌ی بعدی ادامه مبحث شی‌ءگرایی را در زبان برنامه‌نویسی PHP می‌گیریم.

برای تمرین سعی کنید یک کلاس دیگر بسازید که همانند آنچه در این دو جلسه ایجاد کردیم شامل متدها و پروپرتی‌های خاص خود باشد.

 منبع: زومیت

آموزش PHP – جلسه بیست و یکم: شیء گرایی

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

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

۶۸a3310b-b292-4c62-97a9-78a494ae332f.jpgبه جای یادگیری تئوری که در اکثر آموزش‌ها از آن استفاده شده، ما مستقیما مثل جلسات قبل شما را درگیر کدنویسی می‌کنیم تا همراه با یادگیری مطالب بتوانید کدهای موردنیاز را به صورت عملی نیز بنویسید. برای این‌که اشتیاق شما به مبحث شی‌ء‌گرایی بیشتر شود جالب است بدانید که پس از یادگیری این بخش، برنامه‌نویسی به زبان پی‌اچ‌پی برای شما بسیار لذت‌بخش‌تر و آسان‌تر و مسنجم‌تر خواهد شد. پس مثل همیشه برنامه‌ی نوت‌پد پلاس‌پلاس را اجرا کنید و هم‌زمان با توضیحاتی که می‌خوانید، کدهای موردنیاز را بنویسید.

مقدمه

با انتشار پنجمین نسخه از PHP در سال ۲۰۰۴، برنامه‌نویسان این زبان در نهایت امکان بهره بردن از قدرت برنامه‌نویسی شی‌ءگرا را به دست آوردند. این همان قدرتی است که زبان‌های دیگری چون جاوا و سی، آن را از قبل در اختیار توسعه‌دهندگان قرار داده بودند. 

در این سری آموزشی قصد داریم تا به صورت گام به گام، شما را با نحوه ساختن اشیاء در پی‌اچ‌پی و نیز استفاده کردن از آن‌ها آشنا کنیم. تمام این کارها با قابلیت‌های درونی OOP پی‌اچ‌پی امکان‌پذیر هستند و نیاز به هیچ مورد اضافه‌ی دیگری ندارید. در ادامه، خلاصه‌ای از آنچه فرا خواهید گرفت را مشاهده می‌کنید.

  • تفاوت بین ساخت یک اپلیکیشن پی‌اچ‌پی با روش معمولی (قدیمی) و روش شی‌ءگرا.
  • اصول OOP چه هستند و چگونه از آن‌ها در پی‌اچ‌پی استفاده کنیم.
  • چه زمانی از OOP در اسکریپت‌های پی‌اچ‌پی خود استفاده کنیم.

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

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

مرحله اول:

ایجاد فایل‌های موردنیاز

پیش از هر چیز مثل همیشه نرم‌افزار Xampp را اجرا کرده و یک پوشه جدید در پوشه‌ی htdocs بسازید. در این پوشه دو فایل جدید به نام‌های index.php و class.php را نیز بسازید.

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

محور اصلی برنامه‌نویسی شی‌ءگرا بر ساختارهایی به نام کلاس (class) می‌چرخد. کلاس‌ها قالب‌های کلی برای تعریف اشیاء در برنامه‌نویسی شیءگرا هستند.

مرحله دوم:

ساختن یک کلاس پی‌اچ‌پی در فایل class.php

به منظور طراحی اسکریپت‌های پی‌اچ‌پی خود به جای این‌که چندین تابع، متغیر و کدهای شناور مختلف داشته باشید، بهتر است کتابخانه‌های مخصوص به خود را با روش OOP ایجاد کرده و در واقع کلاس‌های خودتان را تعریف کنید.

برای تعریف کلاس خود باید از کلمه کلیدی class استفاده کنیم و به دنبال آن نامی را که قصد داریم برای کلاس تعیین شود، می‌نویسیم. به مثال زیر دقت کنید.

<?php
class person {
}
?>

نکته: محتوای هر کلاس همانند ساختار توابع، با علامت آکولاد ( { } ) احاطه می‌شود.

مرحله سوم:

کلاس‌ها را می‌توان نقشه‌هایی برای اشیاء پی‌اچ‌پی دانست. یکی از بزرگترین تفاوت‌هایی که بین توابع و کلاس‌ها وجود دارد این است که یک کلاس شامل داده‌ها (متغیرها) و توابع مختلف است. هر یک از توابع موجود در کلاس را یک شیء (object) می‌نامند.

هنگامی که شما بخواهید متغیرهای موردنظر خود را در داخل یک کلاس ایجاد کنید، به این متغیرها خاصیت یا ویژگی می‌گویند. به مثال زیر توجه کنید:

<?php
class person {
var $name;
}
?>

نکته: داده‌ها. متغیرهایی که در داخل یک کلاس تعریف شده‌اند را خواص آن کلاس می‌گویند.

مرحله چهارم:

افزودن توابع‌/متدها به کلاس

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

از متدهای یک کلاس به منظور اعمال تغییرات در داده‌ها و خواص (متغیرهای کلاس) استفاده می‌کنیم. به مثال زیر توجه کنید:

<?php
class person {
var $name;
function set_name($new_name) {
$this->name = $new_name;
}
function get_name() {
return $this->name;
}
}
?>

نکته: فراموش نکنید که در یک کلاس، متغیرها را Property (مشخصه‌ها یا ویژگی‌ها) می‌نامند و توابع نیز متدهای کلاس خوانده می‌شوند.

مرحله پنجم:

توابع ست‌کننده و دریافت کننده

ما دو تابع (متد) جالب را تعریف کرده‌ایم. یکی get_name() و دیگری set_name().

این متدها از حالت کلی و رایج برنامه‌نویسی شیءگرا (OOP) پیروی می‌کنند و شما می‌توانید این ویژگی را در سایر زبان‌های برنامه‌نویسی که از شی‌ءگرایی پشتیبانی می‌کنند (مثل جاوا و Ruby) نیز مشاهده کنید.

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

<?php
class person {
var $name;
function set_name($new_name) {
$this->name = $new_name;
}

function get_name() {
return $this->name;
}
}
?>

نکته: توجه داشته باشید که نام توابع ست‌کننده و دریافت‌کننده، باید با نام مشخصه‌های مرتبط با آن‌ها یکسان باشد.

با استفاده از این روش، هنگامی که توسعه‌دهندگان پی‌اچ‌پی بخواهند اشیاء شما را مورداستفاده قرار دهند، می‌دانند که اگر تابعی به نام یک متغیر درون کلاسی باشد، آن تابع یا متد به منظور اعمال تغییرات روی آن متغیر به‌کار می‌رود.

در جلسات بعدی به ادامه‌ی مبحث می‌پردازیم.

 منبع: زومیت

آموزش PHP – جلسه بیستم: کار با رشته ها

در ادامه سری آموزش پی‌اچ‌پی قصد داریم شما را با توابع پر‌کاربردی که در کار با رشته‌ها با آن‌ها زیاد سروکار خواهید داشت آشنا کنیم. در ادامه این جلسه از آموزش پی‌اچ‌پی با ما همراه باشید.

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

تابع ()strpos

شما هنگام برنامه‌نویسی نیاز خواهید داشت تا به عنوان مثال جایگاه بخش خاصی از یک رشته متنی را بیرون بکشید. برای انجام چنین کاری می‌توانید از تابع ()strpos بهره ببرید و جایگاه بخشی از یک رشته متنی را که مدنظرتان است به‌دست آورید.

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

$numberedString = “123456789”; // 9 numbers from 1 to 9

$fivePos = strpos($numberedString, “5”);
echo $fivePos;

در مثال بالا ابتدا اعداد ۱ تا ۹ در یک متغیر قرار داده شده‌اند. سپس با استفاده از تابع strpos متغیر حاوی این اعداد را که حالا یک رشته متنی است به عنوان ورودی اول و عدد ۵ را به عنوان ورودی دوم قرار داده‌ایم. خروجی تابع را در متغیری به نام fivePos قرار داده‌ایم و آن را چاپ کرده‌ایم. خروجی این کد عدد ۶ خواهد بود. اما چرا؟ شمارش جایگاه هر کاراکتر در رشته‌ها در پی‌اچ‌پی مانند بسیاری از زبان‌های برنامه‌نویسی از ۰ شروع می‌شود. بنابراین عدد یک در رشته متنی بالا جایگاه شماره ۰ را دارد و عدد شماره ۲ جایگاه شماره ۱ و به همین ترتیب.

تابع ()str_replace

یکی دیگر از ابزارهای کلیدی در برنامه‌نویسی قابلیت جایگذاری آسان موارد دلخواه در رشته‌های متنی با مقادیر جدید است. در پی‌اچ‌پی تابعی به نام ()str_replace وجود دارد که شبیه به پردازشگر‌های کلمه کار کرده و می‌توان با استفاده از آن جای‌گذاری رشته‌ها را انجام دهید.

پارامترهای ورودی این تابع سه مورد هستند که حالت کلی آن به شکل زیر است:

str_replace(search, replace, originalString)

در ادامه توضیح مربوط به هر کدام از این ورودی‌ها را مشاهده می‌کنید:

  1. Search: این ورودی همان چیزی است که قصد دارید در رشته متنی به دنبال آن بگردید. این ورودی می‌تواند یک رشته متنی یا یک آرایه باشد.
  2. Replace: تمام یافته‌های حاصل از جستجوی رشته‌های متنی با این ورودی جایگزین می‌شوند. این ورودی در واقع مقدار جدیدی است که قصد دارید آن را با مقادیر قدیمی موردنظر جایگزین کنید.
  3. OrginalString: رشته متنی اولیه که قصد دارید در آن به جستجو و جایگزین کردن رشته‌های جدید بپردازید.

برای درک بهتر این تابع به مثال زیر توجه کنید:

<?php
//string that needs to be customized
$first= “Welcome to mehrastan”;

$sec= str_replace(“mehrastan”, “mehrastan university”, $first);

echo $sec;
?>

نتیجه اجرای کد بالا عبارت Welcome to mehrastan university خواهد بود. چرا که با استفاده از تابع str_replace کلمه mehrastan را به mehrastan university تغییر داده‌ایم و خروجی آن را در متغیری به نام sec قرار داده‌ایم. سپس این متغیر را چاپ کرده‌ایم.

تابع ()trim

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

<?php
//string that needs to be trimmed
$stringTest = ” test trim func “;
$finalString = trim($stringTest);
echo $finalString;
?>

در مثال بالا رشته متنی که دارای فاصله اضافه در ابتدا و انتهای خود است به عنوان ورودی در تابع trim وارد کرده و مقدار نهایی را در یک متغیر قرار داده‌ایم. سپس این متغیر را چاپ کرده‌ایم. نتیجه رشته‌ متنی بدون فاصله‌های اضافه اول و آخر آن خواهد بود.

از تابع ()ltrim و ()rtrim هم می‌توانید به صورت مشابه و به ترتیب برای حذف کاراکترهای خالی سمت چپ و حذف کاراکترهای سمت راست بهره ببرید.

تابع ()md5

با استفاده از این تابع می‌توانید یک رشته متنی را بدون بازگشت به صورت کدشده در بیاورید. از این تابع در پی‌اچ‌پی استفاده فراوانی می‌شود. به عنوان مثال پیش از ذخیره رمزهای عبور یا اطلاعات مهم دیگر بسیاری از برنامه‌نویسان آن‌ها را با تابع md5 به صورت رمزنگاری شده درمی‌آورند و سپس آن را در بانک‌های اطلاعاتی ذخیره می‌کنند. بدین ترتیب امنیت بیشتری در پروژه نوشته شده با PHP برقرار خواهد شد. به مثال زیر دقت کنید:

<?php
//string that needs to encrypted
$str = “mehrastan”;
$finalStr = md5($str);
echo $finalStr;
?>

نتیجه اجرای کد فوق چاپ عبارت ۵۶۴۸۷۸۶۲c6e25c640a93c75c19379391 در مرورگر کاربر خواهد بود. همان‌طور که می‌بینید این تابع فقط یک ورودی دریافت می‌کند و آن هم همان رشته متنی‌ است که قصد دارید آن را رمزنگاری کنید.

تابع ()str_word_count

از این تابع به منظور شمارش تعداد کلمات موجود در یک رشته متنی استفاده می‌شود. ساختار کلی این تابع به شکل زیر است:

str_word_count(string,return,char)

این تابع سه ورودی دارد که ورودی اول ضروری و ورودی دوم و سوم اختیاری هستند و می‌توان آن‌ها را در تابع وارد نکرد.

  1. string: رشته متنی‌ که قصد دارید تعداد کلمات آن را شمارش کنید.
  2. return: این ورودی اختیاری است. می‌توان سه مقدار برای آن تعیین کرد. اگر این ورودی ۰ باشد، خروجی تابع همان تعداد کلمات رشته متنی است که به صورت پیش‌فرض اگر وارد نشود هم همان صفر درنظر گرفته می‌شود. اگر این آرگومان ۱ باشد، خروجی تابع یک آرایه از تمام کلمات رشته متنی موردنظر خواهد بود. اگر این آرگومان ۲ باشد خروجی تابع آرایه‌ای از کلمات خواهد بود با این تفاوت که این بار کلید هر عضو از آرایه در واقع جایگاه آن در رشته متنی خواهد بود.
  3. char: این آرگومان نیز اختیاری است. می‌توان با این ورودی برخی کاراکترهای خاص را به عنوان کلمه در نظر گرفت. 

برای آشنایی بیشتر با این تابع به مثال زیر دقت کنید:

<?php
$str = “mehrastan weblog”;
$finalStr = str_word_count($str);
echo $finalStr;
?>

نتیجه اجرای کد فوق عدد ۲ خواهد بود چراکه رشته متنی موردنظر ما شامل دو کلمه است.

تابع ()strlen

با استفاده از این تابع می‌توانید تعداد کاراکترهای یک رشته متنی را شمارش کنید. این تابع فقط یک ورودی دارد و آن هم رشته متنی موردنظری است که قصد دارید تعداد کاراکترهایش را بشمارید. به مثال زیر دقت کنید.

<?php
$str = “mehrastan weblog”;
$finalStr = strlen($str);
echo $finalStr;
?>

نتیجه اجرای کد فوق عدد ۱۶ خواهد بود. چراکه رشته متنی ذخیره شده در متغیر str در کد بالا، شامل ۱۶ کاراکتر است. دقت کنید که فاصله هم به عنوان یک کاراکتر شناخته می‌شود.

تابع ()substr

از این تابع به منظور برش دادن بخش خاصی از یک رشته متنی می‌توان استفاده کرد. خروجی این تابع بخش موردنظر شما خواهد بود. این تابع سه ورودی دارد و ساختار کلی آن به شکل زیر است:

substr(string,start,length)

توضیحات مربوط به ورودی‌های این تابع در زیر آورده شده است:

  1. string: رشته متنی‌ که قصد دارید بخشی از آن را برش دهید.
  2. start: جایگاهی که قصد دارید از آنجا عمل برش رشته متنی انجام شود. این عدد در واقع شماره جایگاه کاراکتر اولیه‌ای است که قصد دارید برش را از آنجا آغاز کنید. اگر این مقدار ۰ باشد، عملیات برش از اولین کاراکتر شروع می‌شود.
  3. length: این ورودی در واقع اختیاری بوده و می‌توانید آن را وارد نکنید. این ورودی طول رشته متنی برش خورده نهایی را بر حسب کاراکتر نشان می‌دهد. به صورت پیشفرض اگر این آرگومان را وارد نکنید رشته متنی تا آخرین کاراکتر برش خواهد خورد.

برای درک بهتر این تابع توجه شما را به مثالی که از وب‌سایت w3schools آورده شده جلب می‌کنیم:

<!DOCTYPE html>

<html>

<body>

<?php

// Positive numbers:

echo substr(“Hello world”,10).”<br>”;

echo substr(“Hello world”,1).”<br>”;

echo substr(“Hello world”,3).”<br>”;

echo substr(“Hello world”,7).”<br>”;

echo “<br>”;

// Negative numbers:

echo substr(“Hello world”,-1).”<br>”;

echo substr(“Hello world”,-10).”<br>”;

echo substr(“Hello world”,-8).”<br>”;

echo substr(“Hello world”,-4).”<br>”;

?>

</body>

</html>

خروجی کد بالا به صورت زیر خواهد بود:

d

ello world

lo world

orld

d

ello world

lo world

orld

بدین طریق با این تابع می‌‌توانید بخش موردنظر خود را از هر رشته‌ متنی برش دهید.

امیداوریم از این جلسه از سری آموزش‌های پی‌اچ‌پی نهایت استفاده را ببرید. در جلسات آینده و مباحث پیشرفته‌تر با توابع بیشتری آشنا خواهید شد.

در پایان هرگونه سوالی در مورد مباحث این جلسه دارید آن را در بخش نظرات اعلام کنید.
منبع: زومیت

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

یادگیری برنامه‌نویسی اندروید و تولید اپلیکیشن‌های موردنظر شما کار ساده‌ای نیست، به ویژه این‌که هیچ دانشی از برنامه‌نویسی نداشته باشید. اما گوگل قصد دارد با هموار کردن مسیر آموزش، برنامه‌نویسی اپلیکیشن‌های اندرویدی را به کاربران مبتدی یاد دهد. با ما همراه باشید.

افراد زیادی هستند که به برنامه‌نویسی و به ویژه تولید اپلیکیشن‌های اندرویدی علاقه دارند تا بتوانند برای خود درآمدی را رقم بزنند. اما یادگیری برنامه‌نویسی به خصوص برای کاربران مبتدی اصلا ساده نیست و باید دنبال کلاس‌ یا فایل‌های آموزشی بگردید. اما گوگل تصمیم گرفته راهی ساده و بهتر را پیش پای شما بگذارد. این کمپانی با معرفی دوره‌ی بدون مدرک اصول اندروید (هفته‌ی اول رایگان است) در Udacity تصمیم دارد از متخصصان خود برای نوشتن اپلیکیشن‌های ساده‌ی اندرویدی استفاده کند و نیازی نیست نسبت به کدنویسی دانش قبلی داشته باشید.

این دوره‌ی آنلاین به شما کمک می‌کند تا به اندازه‌ی کافی با اندروید استودیو آشنا شده و بتوانید در زمان موردنظر برنامه‌ی خود را به اتمام برسانید. قرار نیست اپلیکیشنی در حد اینستاگرام تولید کنید ولی می‌توانید در برنامه‌نویسی اندروید به سطح خوبی برسید.

در صورت نیاز می‌توانید با پرداخت هزینه از آموزش‌های بیشتر و مشورت‌های شغلی بهره‌مند شوید و گوگل شما را تشویق می‌کند اگر قصد دارید به عنوان یک توسعه‌دهنده فعالیت کنید، در دوره‌ی بدون مدرک برنامه‌نویسی اندروید مبتنی بر فرصت‌های شغلی نیز شرکت کنید. اگر جزو ۵۰ نفر برتری باشید که دوره‌ی پایه را با موفقیت به پایان می‌رساند، آن‌گاه گوگل به شما گواهی پایان دوره را اهدا می‌کند.

با این‌که تولیدکنندگان سیستم‌عامل‌ها، ابزارهای مختلفی را برای شروع کار برنامه‌نویسی و تولید اپلیکیشن در اختیار کاربران قرار می‌دهند ولی کمتر پیش می‌آید که نحوه‌ی استفاده و آموزش این ابزارها را برای افراد مبتدی منتشر کنند.

با توجه به این‌که می‌دانیم اپل نیز تصمیم گرفته به افراد مبتدی و کودکان برنامه‌نویسی را بیاموزد، نظر شما درباره‌ی اقدام گوگل چیست؟

منبع: زومیت