در این مطلب می خواهیم ویژگی دیگری از زبان پی اچ پی برای ایجاد فایل پیکربندی (Configuration File) یا فایل تنظیم ها (Setting File) را برای نگهداری تنظیم های برنامه و سپس خواندن آن درون اسکریپت های پی اچ پی را آموزش دهیم. همچنین اتصال به پایگاه داده بوسیله PDO را به همراه جنبه های دیگری از PDO را مرور و آموزش خواهیم داد.

فایل های پیکربندی در پی اچ پی با تابع ()parse_ini_file

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

تابع ()parse_ini_file می تواند یک فایل با الگوی فایل پیکربندی اصلی php.ini فایل را بخواند، به عبارت دیگر ابتدا لازم است که یک فایل متنی ساده با پسوند ini. ایجاد کنید و سپس تنظیم های لازم را در آن به صورت جفت کلیدهای key=value وارد کنید. تنها باید نام یا مسیر فایل پیکربندی که دارای پسوند ini است را به تابع بفرستیم، تا تابع یک آرایه انجمنی (Association Array) از تنظیم های مورد نظر ما را برگشت دهد. چون تابع آرایه انجمنی را برگشت می دهد، پس از طریق نام کلید به مقدار آن دسترسی خواهیم داشت.

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

سپس باید درون اسکریپت های پی اچ پی که لازم به خواندن و دسترسی به محتوای فایل دارند، تابع ()parse_ini_file را فراخوانی کنیم، به طوری که نام یا مسیر فایل به آن فرستاده شده است. در کدهای زیر چون فایل setting.ini و خود اسکریپت در یک محل قرار داشته اند، من نام فایل را درون یک متغیر به نام iniFileName$ ذخیره کرده ام و سپس متغیر را به عنوان ورودی به تابع ()parse_ini_file فرستاده ام. البته تابع ورودی های دیگری نیز دریافت می کند که می توانید از اینجا بخوانید.

محتوای خروجی تابع ()prase_ini_file

شکل زیر محتوای متغیر parameters$ را نشان می دهد و همانطور که از کدهای بالا مشخص است می توانیم توسط نام پارامتر درون فایل settings.ini مانند databse یا user و pass به مقدار آن پارامتر دسترسی داشته باشیم. سپس از تابع ()sprint برای فرمت کردن یک رشته و ایجاد رشته اتصال (یا همان SDN) استفاده می شود.

تابع ()sprintf در پی اچ پی

پس از ایجاد شی pdo$ که در واقع ادراه کننده و واسط دسترسی به پایگاه داده بوسیله PDO است، در خط پایینی، توسط متد ()setAttribute می خواهیم خصوصیتی را برای اداره کننده ارتباط با پایگاه داده، یعنی شی pdo$ تنظیم کنیم. متد ()setAttribute دو ورودی دریافت می کند که ورودی نخست نام یک خصوصیت و ورودی دوم نام یک مقدار برای آن خصوصیت است. به طور مثال در کدهای بالا خصوصیت PDO::ATTR_ERRMODE با مقدار PDO::ERRMOD_EXCEPTION برای شی pdo$ مقدار دهی شده است. در اینجا می توانید فهرست خصوصیت ها را بخوانید و توجه کنید که خصوصیت ها با واژه ATTR شروع می شوند.()getAttribute، متد دیگری است که نام یک خصوصیت مانند PDO::ATTR_ERRMODE را گرفته و یک مقدار عددی را برگشت می دهد.

در پایان و درون بدنه عبارت catch در صورتی که مشکلی در ارتباط با پایگاه داده رخ دهد، یک استثنا و توسط PDOException نمایش داده شود. به طور مثال ممکن است که آدرس یا دامنه یا شماره پورت ، حساب کاربری نادرست باشد، یا اینکه پایگاه داده وجود نداشته باشد و یا اگر وجود دارد، حساب کاربری مجاز به دسترسی به آن نیست. توجه کنید متغیر error$ از نوع PDOException است که توسط متد ()getMessage متن پیام خطا و توسط متد ()getCode شماره خطا نمایش داده خواهد شد.

توجه کنید اگر تمامی پارامترها و الگوی رشته DSN را درست تعیین کرده باشید، شی pdo$ درون بدنه عبارت try ایجاد می شود. اکنون که شی pdo$ برای دسترسی به پایگاه داده بوسیله PDO را در اختیار داریم، باید این فایل که به طور نمونه connection.php است را باید درون اسکریپت هایی ضمیمه (Import) کنیم که در آنها نیاز به دسترسی به پایگاه داده است. در مطلب های دیگر نشان داده ایم که چگونه نخستین کوئری ها را بنویسید.