خانه / PHP / اولین برنامه خود را با PHP ایجاد کنید : قسمت ۱
پرشیُن هاست

اولین برنامه خود را با PHP ایجاد کنید : قسمت ۱

در این آموزش برای خوانندگان که اصول بسیار از php می دانند و می خواهند برنامه نویسی شی گرا (OOP)  برای ایجاد یک برنامه تحت وب عمومی ، در نظر گرفته شده.

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

 

سری به نمای کلی

در اینجا یک طرح کلی در مورد این پست در این سری از آموزشها انتظار است:

قسمت ۱ – راه اندازی پروژه و ایجاد کلاس

  • ایجاد یک طرح کلی از پروژه
  • راه اندازی فایل ها و پوشه های خود
  • ایجاد یک کلاس که مسئولیت رسیدگی به عملیات پایگاه داده دارد به نام : DB.class.php

 

قسمت ۲ – ساختمان بقیه بخش سورس

  • ایجاد یک کلاس کاربر
  • ایجاد یک کلاس ابزار ها کاربر
  • ثبت نام / ورود به سیستم / خروج از سیستم

قسمت ۳ – ساختمان ناحیه کاربر

  • فرم
  • مدیریت فرمها
  • نمایش اطلاعات جلسه ها ( session )

 

 

راه اندازی پروژه

ایجاد یک نقشه ROAD

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

 

فایل ها و ساختار پوشه

یک پروژه OOP PHP با بهره گیری از کلاس ها و اشیاء بسیاری از عملیات هایی که نرم افزار نیاز دارد را انجام میدهد. هنگامی که برنامه ریزی می کنید، شما باید در مورد کلاس های مورد نیازتان فکر کنید. برای این پروژه می خواهیم سه کلاس ایجاد کنیم. اولین کلاس کاربر، که اطلاعات مربوط به یک کاربر خاص و یک تابع اولیه برای ذخیره کاربر ایجاد کنیم. یکی دیگر از کلاس، کلاس ابزار کاربران می باشد که توابع ای از جمله ورود به سیستم، خروج از سیستم، و غیره را داشته باشد. کلاس نهایی، اولین کلاس ما برای برنامه نویسی می شود. این کلاس را پایگاه داده را اداره می کند؛ اتصال به پایگاه داده، به روز رسانی، قرار دادن ردیف جدید، بازیابی ردیف، و بیشتر.

 

گذشته از کلاس، ما یک فایل به نام global.inc.php استفاده می کنیم. این فایل را در هر صفحه صدا زده می شود و عملیات های کلی را که ما معمولا نیاز به انجام آن ها داریم در خود دارد. برای مثال اتصال به پایگاه داده می باشد که در هر صفحه نیازمند آن هستیم.

 

بقیه فایل های این پروژه عبارتند از index.php، register.php، login.php و logout.php، settings.php و welcome.php.

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

folders

 

ایجاد پایگاه داده و جدول کاربران

ابتدا لازم است که MYSQL در سرور شما نصب شده باشد. در ابتدا نیاز هست که یک دیتابیس ایجاد نمایید برای پروژه. برای این آموزش باید جدول کاربران را با استفاده از sql زیر ایجاد نمایید :

CREATE TABLE IF NOT EXISTS users (

id int(11) NOT NULL AUTO_INCREMENT,

email varchar(50) NOT NULL,

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

“id” را به عنوان کلید اصلی استفاده می شود و شناسه اصلی  و منحصر به فرد است که ما با استفاده از آن به تمایز بین کاربران در پایگاه داده پی میبریم. “username” نیز به عنوان یک کلید منحصر به فرد تعریف شده است. زمینه های دیگر عبارتند از “password” (که پس از رمزنگاری ذخیره می شود)، “email” و “join_date” (یک ممتغیر datetime در SQL است ).

ایجاد DB.class.php

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

در اینجا کد را همراه با توضیح آورده ایم:

<?php

//DB.class.php

protected $db_name = ‘yourdatabasename’;

class DB {

protected $db_user = ‘databaseusername’;

public function connect() {

تفکیک کد

پس از تعریف کلاس شما چهار متغیر $db_name, $db_user, $db_pass و $db_host را می بینید. باید بر این اساس پایگاه داده خود تعیین شوند. شما به احتمال زیاد به $db_host عنوان localhost را می دهید . این متغیرها به عنوان “حفاظت شده” تعریف شدند، به عنوان مثل نمی خواهیم از خارج از کلاس قابل دسترسی باشند. از هر نقطه در داخل کلاس، می توان آنها را با استفاده از $ this-> DB_NAME، $ this-> DB_USER، و غیره بازیابی کنیم .

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

در اینجا یک مثال استفاده از این تابع از هر نقطه در خارج از کلاس است آورده ایم (خیلی ساده است، درست است؟):

//create and instance of the DB class

$db = new DB();

$db-&gt;connect();

//connect to the database

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

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

سه تابع نهایی انجام وظایف : SELECT، INSERT، update . هدف از این توابع است که برای minimalize مقدار SQL که نیاز به جاهای دیگر در نرم افزار نوشته شود. هر اساسا یک پرس و جوی SQL بر اساس ارزش گذشت در ساخت و پرس و جو که اجرا می کند. در مورد (SELECT)، نتایج فرمت شده و بازگشته است. در مورد (update )، مقدار true بازگشته می شود اگر عملیات انجام شده بود. در مورد (INSERT)، شناسه رکورد جدید قرار داده شده برگردانده می شود.

در اینجا یک نمونه از اینکه چگونه ممکن یک کاربر در پایگاه داده با استفاده از تابع ( update ) به روز شود را آورده ایم :

 

//create an instance of the DB class

“email” =&gt; “‘johndoe@email.com'”

“username” =&gt; “‘johndoe'”,

//the username to johndoe and the email to johndoe@email.com

//Find the user with id = 3 in the database and update the row

$db-&gt;update($data, ‘users’, ‘id = 3’);

همانطور که می بینید، نام ستون از جدول برای ستون در حال بروز رسانی کلید می باشد و مقادیر، اطلاعات است که در آن ستون تنظیم شده است.

اعتبار اضافی

سعی کنید برای گسترش کلاس DB یک تابع برای حذف یک ردیف از پایگاه داده نیز اضافه کنید.

مورد بعدی چیست؟

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


منبع : صفر تا نه ( http://blog.0ta9.ir )
پرشیُن هاست

دیدگاه شما

( الزامي )

(الزامي)