سوالات مصاحبه برنامه نویسی PHP — راهنمای استخدام
زبان برنامه نویسی PHP یکی از پرکاربردترین و محبوبترین زبانهای برنامه نویسی در زمینه توسعه وب (بک اند) به حساب میآید و درصد بالایی از وب سایتها و وب اپلیکیشنها در ایران و سراسر دنیا با PHP ایجاد شدهاند. این زبان برنامه نویسی همچنان از محبوبیت زیادی برخوردار است و شرکتهای بسیاری به دنبال استخدام برنامه نویس PHP هستند. بنابراین در این مقاله به ارائه تعدادی از کلیدیترین سوالات مصاحبه برنامه نویسی PHP پرداخته شده است. این مقاله به عنوان یک راهنمای استخدام برای برنامه نویسان PHP در سطوح مبتدی تا پیشرفته به حساب میآید.
در بخش مقدماتی مقاله «سوالات مصاحبه برنامه نویسی PHP»، به سوالاتی اشاره میشود که لازم است برنامه نویسان مبتدی قادر به پاسخگویی به آنها باشند.
سوالات مصاحبه برنامه نویسی PHP برای افراد تازهکار
در این بخش ابتدایی از مقاله، به سوالات مصاحبه برنامه نویسی PHP در سطوح مبتدی و پایه اشاره میشود. افراد تازهکار در حوزه برنامه نویسی میتوانند به واسطه آشنایی با چنین سوالاتی مهارتهای خود را در جهت رشد و شکوفایی در این حوزه محبوب ارتقا دهند. علاوه بر این، به وسیله آشنایی با سوالات مصاحبه برنامه نویسی PHP ارائه شده در این بخش، افراد میتوانند آمادگی لازم را برای شرکت در مصاحبه استخدامی به دست آورند و احتمال پذیرش و استخدام خود را در موقعیتهای شغلی مورد نظر افزایش دهند.
در PHP متغیرها و ثابتها چه تفاوتی دارند؟
هر یک از تفاوتهای کلیدی متغیرها و ثابتها به شرح زیرند:
- در PHP، میتوان مقدار یک متغیر (Variable) را در طول اجرا تغییر داد، اما امکان تغییر مقدار ثابت (Constant) در طول اجرای اسکریپت وجود ندارد.
- برای استفاده از متغیرها، باید حتماً از علامت $ در شروع استفاده شود، در حالی که قبل از استفاده از ثابت نیازی به علامت دلار ($) نیست.
- به منظور تعریف یک متغیر، تنها یک انتساب ساده نیاز است. اما نمیتوان ثابتها را با انتساب ساده تعریف کرد و برای تعریف آنها باید از تابعdefine() استفاده شود.
- در متغیرها، محدوده (Scope) پیشفرض، محدوده دسترسی فعلی است. در صورتی که امکان دسترسی به ثابتها به صورت سرتاسری و بدون قوانین محدود کننده وجود دارد.
Session در PHP چیست؟
در PHP، جلسه (Session) راهی برای ذخیره اطلاعات به حساب میآید که جهت استفاده در چندین صفحه از کل وب سایت به کار میرود. بر خلاف کوکیها (Cookies) اطلاعات در رایانه کاربر ذخیره نمیشوند. در یک پوشه موقت روی سرور، یک فایل توسط Session ایجاد میشود که در آن متغیرهای جلسه ثبت شده و مقادیر آنها ذخیره خواهند شد.
لازم به ذکر است که در طول آن بازدید، اطلاعات مذکور در تمام صفحات سایت در دسترس هستند. هنگامی که کاربر با یک اپلیکیشن کار میکند، آن برنامه را باز میکند، تغییراتی را انجام میدهد و سپس، آن را میبندد. این عملیات شباهت زیادی به Session دارد.
هنگام کار با کامپیوتر مشخص است که فرد چه کسی است، چه زمانی برنامه توسط او شروع شده و چه زمانی به پایان میرسد. اما در فضای اینترنت، در مورد اینکه کاربر کیست یا چه کار میکند، اطلاعات خاصی در دسترس وب سرور نیست. چرا که در آدرس HTTP وضعیتی حفظ نمیشود. این مشکل با استفاده از متغیرهای جلسه قابل حل است.
به واسطه متغیرهای جلسه، امکان ذخیرهسازی اطلاعات کاربر برای استفاده در چندین صفحه وجود دارد. به عنوان مثال، میتوان نام کاربری، رنگ مورد علاقه و سایر اطلاعات کاربر را ذخیره کرد. به صورت پیشفرض، تا زمانی که کاربر مرورگر را ببندد، متغیرهای جلسه دوام خواهند داشت. بنابراین، در متغیرهای Session، اطلاعات یک کاربر نگهداری میشوند و این اطلاعات برای همه صفحات در یک برنامه در دسترس هستند.
PEAR در PHP چیست؟
PEAR مخفف عبارت «PHP Extension and Application Repository» است. PEAR یک چارچوب نرمافزاری (Framework) و مخزن (Repository) برای همه کامپوننتهای قابل استفاده مجدد PHP به حساب میآید.
PEAR این امکان را به برنامه نویسان وب میدهد که به برنامه نویسی در سطوح بالاتر بپردازند. از سوی دیگر، در PEAR انواع قطعه کد PHP و کتابخانه ارائه شده است و همچنین، برای نصب خودکار بستهها در آن، یک رابط خط فرمان (Command-line Interface) در اختیار کاربران قرار دارد.
تفاوت message با یک علامت $ و message با دو علامت $ چیست؟
مهمترین تفاوتهای میان این دو به شرح زیر است:
- message با یک علامت $ یک متغیر معمولی است، اما message با دو علامت $ یک متغیر مرجع (Reference) محسوب میشود.
- message با یک علامت $ نام ثابتی دارد و مقدار ثابتی در آن ذخیره میشود، اما message با دو علامت $، به منظور ذخیرهسازی دادههای مربوط به متغیر ایجاد شده است.
- دادههایی که ذخیره شدهاند در message با یک علامت $ ثابت هستند. در حالی که با تغییر مقدار متغیر، ممکن است مقدار message با دو علامت $ به صورت پویا تغییر کند.
آیا PHP یک زبان حساس به حروف بزرگ و کوچک است؟
میتوان PHP را به عنوان زبانی در نظر گرفت که به صورت جزئی حساس به حروف کوچک و بزرگ طراحی شده است. در حقیقت، نام متغیرها به طور کامل به حروف بزرگ و کوچک حساس هستند اما در نام توابع چنین حساسیتی به حروف بزرگ و کوچک وجود ندارد.
از سوی دیگر،برای نامگذاری توابع تعریف شده توسط کاربر در PHP حساسیتی نسبت به حروف بزرگ و کوچک وجود ندارد، اما این زبان در خصوص سایر موارد به حروف بزرگ و کوچک حساس است. این یعنی در PHP میتوان نامگذاری توابع تعریف شده توسط کاربر را با حروف کوچک انجام داد، اما بعداً با استفاده از حروف بزرگ آنها را در برنامه فراخوانی کرد. در چنین شرایطی همچنان کدها به درستی عمل میکنند.
انواع متغیرهای موجود در PHP کدامند؟
به طور کلی هشت نوع داده اصلی در PHP وجود دارد که از آنها برای ساخت متغیرها استفاده میشود. در ادامه انواع متغیرهای موجود در PHP فهرست شدهاند:
- نوع اعداد صحیح (Integers): اعداد صحیح اعداد کامل بدون ممیز شناور هستند. به عنوان مثال، عدد 1253 یک Integer است.
- نوع:Doubles: این نوع متغیر همان اعداد ممیز شناور هستند، مثلاً 7.876 یک Double محسوب میشود.
- نوع داده بولی (Boolean): بولی به منظور نمایش دو حالت منطقی کاربرد دارد. به عنوان مثال، صحیح و غلط دو مقدار بولی به حساب میآیند.
- نوع NULL: نوع داده NULL نوع خاصی است که فقط یک مقدار دارد. زمانی که هیچ مقداری به یک متغیر اختصاص داده نمیشود، میتوان مقدار NULL را به آن نسبت داد.
- نوع آرایه (Array): آرایهها یک مجموعه نامگذاری شده و مرتب از نوع مشابهی از دادهها هستند. برای مثال عبارت خط دستور زیر یک آرایه است.
1colors = array("red", "yellow", "blue");$
- نوع رشته (String): رشتهها دنبالهای از کاراکترها هستند. به عنوان مثال "Hello! InterviewBit" یک رشته به حساب میآید.
- نوع منبع (Resource): منابع متغیرهای خاصی هستند که از ارجاع به منابع خارجی PHP (مانند اتصالات پایگاه داده) تشکیل شدهاند.
- نوع داده شی: نمونهای از کلاسهای حاوی دادهها و توابع محسوب میشوند. به عنوان مثال، mango = new Fruit();$ یک شی است.
قوانین نامگذاری یک متغیر PHP چه هستند؟
هنگام نامگذاری یک متغیر در PHP، لازم است قوانین زیر رعایت شوند:
- متغیر باید با نماد دلار و در ادامه نام آن شروع شود. به عنوان مثال، در price=100;$ یک متغیر با نام price تعریف شده است که در آن مقدار ۱۰۰ قرار دارد.
- لازم است نام متغیرها با یک حرف یا زیرخط شروع شوند.
- نام متغیر میتواند شامل حروف، اعداد یا زیرخط باشد. اما امکان استفاده از کاراکترهایی مانند + , – , % و سایر موارد در آن وجود ندارد.
- نام متغیر PHP نمیتواند حاوی فاصله باشد.
- متغیرهای PHP به حروف کوچک و بزرگ حساس هستند. بنابراین NAME$ و name$ هر دو به عنوان متغیرهای مختلف و متمایز در نظر گرفته میشوند.
تفاوت بین Echo و Print در PHP چیست؟
تفاوتهای اصلی بین Echo و Print در PHP در ادامه فهرست شدهاند:
- Echo میتواند یک یا چند رشته را در خروجی نمایش دهد. اما، Print فقط میتواند یک رشته را به عنوان خروجی نمایش دهد و همیشه 1 را برمیگرداند.
- با توجه به اینکه Echo هیچ مقداری را بر نمیگرداند، نسبت به Print سریعتر عمل میکند.
- در صورتی که لازم باشد بیش از یک پارامتر به Echo ارسال شود، باید از پرانتز استفاده کرد. در Print، استفاده از پرانتز برای لیست آرگومان الزامی نیست.
معایب PHP کدامند؟
با وجود اینکه PHP یک زبان کاربردی و محبوب در حوزه برنامه نویسی وب است و همچنان، به عنوان یک زبان قدرتمند مورد استفاده قرار میگیرد، اما مشابه سایر زبانهای برنامه نویسی، تعدادی کاستی جزئی نیز دارد.
در ادامه به برخی از کاستیهایPHP اشاره میشود.
- PHP برای وب اپلیکیشنهای مبتنی بر محتوای گسترده مناسب نیست.
- با توجه به اینکه PHP به صورت متن باز ارائه میشود، بنابراین، ایمن نیست. چرا که به راحتی امکان دسترسی به فایلهای متنی ASCII وجود دارد.
- اعمال تغییر در رفتار اصلی برنامههای آنلاین توسط PHP مجاز نیست.
- در صورتی که از امکانات بیشتر فریمورکها و ابزارهای PHP استفاده شود، ممکن است تضعیف عملکرد اپلیکیشنهای آنلاین را به همراه داشته باشد.
- PHP کیفیت پایینی در رسیدگی به خطاها دارد.
- PHP فاقد ابزارهای اشکالزدایی لازم برای جستجوی هشدارها و خطاهای مورد نیاز است. در واقع، PHP در مقایسه با سایر زبانهای برنامه نویسی تنها چند ابزار اشکال زدایی دارد.
تفاوت بین متغیر محلی و سراسری در PHP چیست؟
- متغیر محلی (Local) در داخل یک تابع اعلان میشود، در حالی که در متغیر سراسری (Global) باید خارج از تابع اعلان بشود.
- متغیرهای محلی زمانی ایجاد میشوند که اجرای تابع شروع شده باشد و با پایان یافتن آن تابع از بین میروند. در نقطه مقابل، متغیر سراسری با شروع اجرا ایجاد میشود و با پایان برنامه از بین خواهد رفت.
- با استفاده از متغیر محلی امکان به اشتراکگذاری دادهها وجود ندارد، اما با به کارگیری متغیر سراسری میتوان دادهها را به اشتراک گذاشت.
- متغیرهای محلی در پشته (Stack) ذخیره میشوند، در صورتی که متغیر سراسری در مکان ثابتی ذخیره میشد که توسط کامپایلر تعیین شده است.
- برای متغیرهای محلی ارسال پارامترها امری ضروری است، در حالی در متغیرهای سراسری نیازی به ارسال پارامترها نیست.
منظور از متدها و کلاسهای انتزاعی در PHP چیست؟
زمانی کلاسها و متدها انتزاعی هستند که کلاس والد حاوی یک متد دارای نام باشد، ولی در عین حال، کلاس یا کلاسهای فرزند برای تکمیل وظایف، مورد نیاز هستند. به طور کلی، در PHP، کلاس انتزاعی کلاسی است که تا حدی زیادی توسط هر یک از توسعه دهندگان پیادهسازی میشود.
ممکن است کلاس انتزاعی حداقل یک متد انتزاعی داشته باشد که این متد اساساً بدون کد نوشته میشود و فقط نام و پارامترهای مختلفی دارد.
- مقاله پیشنهادی: شی گرایی در PHP و توضیح مفهوم کلاس و شی — به زبان ساده
وظیفه برنامه نویس PHP در توسعه نرمافزار چیست؟
یک برنامه نویس PHP به عنوان بخشی از یک تیم در برنامه نویسی اپلیکیشنهای مبتنی بر وب مشتریان کار میکند. بر اساس نیاز مشتری، وظایف کلیدی این شغل شامل نوشتن اسکریپتهای PHP و کدنویسی برای ایجاد یا تغییر نرمافزار و برنامههای کاربردی است. علاوه بر این، برنامه نویس PHP وظایف دیگری مانند عیبیابی خطاهای مختلف یا مسائل مربوط به برنامههای PHP و ایجاد مستندات برای آنها را بر عهده دارد. در ادامه به وظایف برنامه نویس PHP به طور واضحتر پرداخته خواهد شد.
- همکاری نزدیک با تیم فناوری اطلاعات در تکمیل پروژهها
- عیبیابی و رفع هرگونه مشکل مربوط به برنامههای PHP
- اطمینان از عملکرد صحیح و بدون نقض فرآیندهای وب و زیرساخت
- ایجاد اسکریپتهایی برای تسهیل سیستمهای کلاینت برای دستیابی به عملکرد و اهداف مد نظر
- تست و توسعه نرمافزار برای برنامههای مشتری
- ایجاد مستندات برای نرمافزار ایجاد شده
- اشکالزدایی منبع و نوشتن یا تغییر نرم افزار مشتری
- ارائه نتایج به طور موثر و در مهلت تعیین شده
تفاوت یک کلاس انتزاعی و یک رابط چیست؟
عملکرد کلاس انتزاعی (Abstract Class) و رابط (Interface) در PHP نیز مشابه سایر زبانهای برنامه نویسی شیگرا (OOP) است.
تفاوتهای عمده کلاسهای انتزاعی و اینترفیسها در ادامه فهرست شدهاند:
- در کلاسهای انتزاعی، لازم نیست تک تک متدها انتزاعی باشند. اما در رابط باید هر متد انتزاعی باشند.
- متدهای Interface باید به صورت عمومی (Public) باشند. اما متدهای کلاس انتزاعی، میتوانند عمومی یا محافظت شده (Protected) در نظر گرفته شوند.
- رابط از وراثت چندگانه پشتیبانی میکند اما کلاسهای انتزاعی امکان پشتیبانی از وراثت چندگانه را ندارند.
- Interfaceها نمیتوانند دارای ویژگی (Property) باشند، در حالی که کلاسهای انتزاعی این قابلت را دارا هستند.
- همه متدهای یک رابط یا همان اینترفیس انتزاعی هستند، بنابراین نمیتوان آنها را در کد پیادهسازی کرد و در آنها «کلمه کلیدی انتزاعی» (Abstract Keyword) ضروری نیست.
در این بخش از بررسی انواع سوالات مصاحبه برنامه نویسی PHP ، تعدای از پرسشهای مقدماتی برنامه نویسی با آن بررسی شدند.
سوالات مصاحبه برنامه نویسی PHP در سطح متوسط
در این بخش از مقاله «سوالات مصاحبه برنامه نویسی PHP»، آن دسته از سوالات رایجی پاسخ داده شدهاند که درجه سختی آنها در سطح متوسط و میانی قرار دارد.
چگونه PHP و HTML میتوانند تعامل داشته باشند؟
اسکریپتهای PHP قابلیت تولید HTML را دارند و امکان انتقال اطلاعات از HTML به PHP وجود دارد. PHP یک زبان سمت سرور (Server Side) است، در حالی که HTML زبان سمت سرویس گیرنده (Client Side) به حساب میآید. از این رو، PHP در سمت سرور اجرا میشود و نتایج آن به صورت رشتهها، اشیا، آرایهها دریافت خواهند شد.
پس از این مرحله، آنها برای نمایش مقادیر مربوطه در HTML به کار میروند. با استفاده از رویکرد تعاملی، علاوه بر پر کردن شکاف ارتباطی بین دو زبان HTML و PHP، استفاده از آنها به بهترین شکل ممکن تسهیل مییابد.
هدف از وجود @ در PHP چیست؟
در PHP از @ به منظور سرکوب پیامهای خطا استفاده میشود. در صورتی که خطای زمان اجرا روی خطی رخ دهد که ابتدای آن از علامت @ تشکیل شده است، خطای مربوطه توسط PHP رسیدگی میشود.
- مقاله پیشنهادی: ایجاد فرم ورود (Login) با PHP — از صفر تا صد
اهمیت Parser در PHP چیست؟
PHP Parser نرمافزاری است که کد منبع را به کد قابل درک توسط کامپیوتر تبدیل میکند. این یعنی، هر مجموعه دستورالعملی که در قالب کد PHP ارائه میشود توسط Parser به یک قالب قابل خواندن توسط ماشین تبدیل خواهد شد. با استفاده از تابع token_get_all()، امکان تجزیه کدهای PHP با استفاده از آن وجود دارد.
انواع مختلف آرایه در PHP چیست؟
در PHP سه نوع آرایه مورد استفاده قرار میگیرند که در ادامه به آنها اشاره شده است.
- آرایه شاخصگذاری شده (Indexed Array): آرایهای که همراه با یک کلید عددی شناخته میشود و در آن، مقادیر به ترتیب خطی ذخیره میشوند و قابل دسترسی هستند.
- آرایه انجمنی (Associative Array): آن دسته از آرایهها که برای شاخصگذاری عناصر آنها از رشته استفاده میشود. به جای ذخیرهسازی مقادیر عناصر به صورت خطی و بدون انعطاف، این مقادیر مرتبط با مقادیر کلیدی ذخیره خواهند شد.
- آرایه چندبعدی (Multidimensional Array): آن گروه از آرایهها که داخل آنها یک یا چند آرایه دیگر قرار میگیرد به عنوان آرایه چندبعدی شناخته میشوند. مقادیر ذخیره شده در آرایههای چندبعدی با استفاده از چندین شاخص قابل دسترسی هستند.
تولید اعداد تصادفی در PHP چگونه است؟
به منظور تولید عدد تصادفی در PHP، میتوان از تابع پیشساخته (Built-in) به نام rand() استفاده کرد. این تابع دو آرگومان را به عنوان بازه مورد نظر دریافت میکند. در صورتی که تابع به صورت rand(min,max) نوشته شود، min و max به ترتیب برای تعیین کمترین و بیشترین بازه عدد برای تولید این تابع کاربرد دارند.
در شرایطی که برای min و max مقداری در نظر گرفته نشود، به طور پیشفرض، به ترتیب برای آنها مقادیر صفر و getrandmax() در نظر گرفته خواهد شد. بدین ترتیب با کمک تابع ()rand، امکان تولید عدد تصادفی در بازه ۰ تا getrandmax() فراهم میشود. برای مثال، اگر این تابع به صورت rand(15,35) مورد استفاده قرار بگیرد، به واسطه آن، یک عدد تصادفی بین ۱۵ تا ۳۵ تولید خواهد شد.
انواع خطاهای اصلی در PHP کدامند؟
به طور عمده، سه نوع خطا در PHP وجود دارند که در ادامه به آنها پرداخته میشود.
- اطلاعیهها (Notices): اعلان خطاهای غیربحرانی هستند که ممکن است در حین اجرای اسکریپت رخ دهند. این نوع از خطا برای کاربران قابل مشاهده نیست. مثلاً، دسترسی به یک متغیر تعریف نشده یکی از نمونههای خطای Notice به حساب میآید.
- اخطارها (Warnings): این خطاها نسبت به سایر خطاها اهمیت بیشتری دارند. البته Warningها منجر به قطع اجرای اسکریپت نمیشوند. به طور پیشفرض، این موارد برای کاربران قابل مشاهده است.به عنوان مثال، در صورتی که include() یک فایل ناموجود انجام شود، این خطاها ظاهر خواهند شد.
- Fatal: این نوع بحرانیترین نوع خطا است و در صورت وقوع، بلافاصله اجرای اسکریپت خاتمه مییابد. برای مثال، دسترسی به یک ویژگی از یک شی غیر موجود یا require() به یک فایل از نوع خطای Fatal است.
traits در PHP چیست؟
traits مکانیزمی است که برای استفاده مجدد از کدها در زبانهای وراثتی واحد مانند PHP به کار میرود. هدف از ارائه Trait، کاهش برخی محدودیتهای زبانهای وراثتی است. در واقع، با ایجاد امکان استفاده مجدد از مجموعههای متد به طور آزادانه در چندین کلاس مستقل موجود در سلسله مراتب کلاسهای مختلف این عمل انجام میشود.
معناشناسی ترکیبی Trait و کلاسها به گونهای تعریف شدهاند که پیچیدگی را کاهش میدهد و به واسطه آن، از مشکلات رایج مرتبط با وراثت چندگانه و ترکیبات اجتناب میشود. Trait مشابه کلاس است، اما فقط به منظور گروهبندی عملکردها به روشی دقیق و سازگار به کار میرود. یک Trait به تنهایی قابلیت نمونهسازی را ندارد.
آیا جاوا اسکریپت با PHP تعامل دارد؟
جاوا اسکریپت (JavaScript) یک زبان برنامه نویسی سمت سرویس گیرنده است، در حالی که PHP یک زبان برنامه نویسی سمت سرور است. PHP توانایی تولید متغیرهای جاوا اسکریپت را دارد و میتوان آن را به راحتی در مرورگر اجرا کرد. بدین ترتیب انتقال متغیرها به PHP با استفاده از یک URL ساده امکان پذیر میشود.
حلقه foreach در PHP چگونه کار میکند؟
دستور foreach یک ساختار حلقه است که در PHP برای تکرار و ایجاد حلقه از طریق نوع داده آرایه استفاده میشود. کار با foreach آسان است، به طوری که ارسال مقدار به عناصر یک مقدار اختصاص داده میشود و اشارهگرها افزایش مییابند. تا زمانی که آرایه به پایان برسد، این فرآیند به طور مکرر انجام میشود. سینتکس استفاده از دستور foreach در PHP به صورت زیر است:
1foreach($array as $value)
2{
3 Code inside the loop;
4}
پرکاربردترین روش برای هش کردن پسوردها در PHP چیست؟
در PHP، تابع crypt() برای هش کردن پسوردها استفاده میشود. به این دلیل که در آن الگوریتمهای Hashing متعددی ارائه میشوند و امکان استفاده از آنها وجود دارد. این الگوریتمها شامل sha1، sha256 یا md5 هستند که بسیار سریع و کارآمد طراحی شدهاند.
تفاوت بین توابع include() و require() چیست؟
تابع include() برای کپی کردن تمام محتویات یک فایل فراخوانی شده در تابع، به صورت متنی در فایلی که از آن فراخوانی میشود کاربرد دارد. هنگامی که فایل گنجانده شده یافت نمیشود، فقط یک هشدار (E_WARNING) تولید خواهد شد و اسکریپت به اجرا ادامه میدهد. تابع ()require همانند تابع include() عمل میکند. علاوه بر این، با استفاده از تابع ()require فایل مورد نیاز گرفته میشود و کل کد در فایلی کپی خواهد شد که تابع ()require از آنجا فراخوانی شده است. هنگامی که فایل گنجانده شده پیدا نمیشود، یک خطای مهلک ایجاد خواهد شد (E_COMPILE_ERROR) و در ادامه، اسکریپت خاتمه داده میشود.
تابع ()Unlink چیست و چگونه کار میکند؟
تابع Unlink() یک تابع پیشساخته (Built-in) در PHP است که برای حذف یک فایل مورد استفاده قرار میگیرد. بدین منظور برای حذف فایل مد نظر، نام فایل مربوطه به عنوان پارامتر ارسال میشود و در صورت موفقیت تابع، مقدار True و در صورت شکست مقدار False را برمیگرداند. لازم به ذکر است که در PHP تابع Unlink() دو پارامتر میپذیرد.
تفاوت بین توابع ()Unset و ()Unlink چیست؟
با وجود اینکه هر دو تابع برای انجام برخی عملیات خنثیسازی به کار میروند، اما به دلیل عملکرد مختلف آنها در شرایط گوناگون، این دو تابع با یکدیگر متفاوت هستند. تابع Unlink() زمانی استفاده میشود که لازم باشد فایلها به طور کامل حذف شوند و تابع Unset() برای زمانی کاربرد دارد که هدف خالی کردن فایل مورد نظر است.
کوکی چیست و چگونه در PHP کوکی ایجاد کنیم؟
کوکی (Cookie) یک رکورد کوچک است که توسط سرور روی کامپیوتر کلاینت نصب میشود. کوکیها دادههای مربوط به یک کاربر را در مرورگر ذخیره میکنند و برای شناسایی کاربر به کار میروند. زمانی که کاربر صفحه خاصی را درخواست میکند، کوکیها روی کامپیوتر او تعبیه میشوند. هر بار که در یک کامپیوتر مشابه، با یک برنامه صفحهای درخواست شود، کوکی نیز ارسال خواهد شد. پس از تایید هویت کاربر به صورت رمزگذاری شده، شناسه جلسه تولید شده توسط کوکیها دربک اند (Back End) حفظ میشود. البته باید توجه کرد که لازم است کوکی در مرورگر دستگاه قرار داشته باشد. فقط امکان ذخیرهسازی مقادیر رشتهای وجود دارد.
به عنوان مثال، نمیتوان یک شی را ذخیره کرد؛ چرا که دسترسی به اشیا در وب سایت یا برنامههای تحت وب امکانپذیر نیست. به طور پیشفرض، کوکیها URL خاصی به حساب میآیند. برای مثال، کوکیهای Gmail توسط یاهو و کوکیهای یاهو توسط Gmail پشتیبانی نمیشوند. به بیان ساده، به طور پیشفرض کوکیها موقت و گذرا هستن و در هر سایت یا وب اپلیکیشن، میتوان 20 کوکی ایجاد کرد. حداقل اندازه اولیه کوکی 50 بایت و حداکثر 4096 بایت است. در PHP، میتوان با استفاده از تابع setcookie() کوکی ایجاد کرد. در ادامه شکل کلی تعریف کوکی و یک مثال از نحوه ایجاد آن ارائه میشود.
1;setcookie(name, value, expire, path, domain, safe, httponly)
خط کد فوق شکل کلی تعریف کوکی است. در این دستور، پارامتر نام اجباری است و پارامترهای باقی مانده اختیاری محسوب میشوند. به منظور درک بهتر، به مثال زیر توجه شود:
1setcookie ("instrument_selected"، "guitar")
تفاوت بین ASP.NET و PHP چیست؟
تفاوتهای اساسی بین ASP.NET و PHP در ادامه فهرست شدهاند:
- ASP.NET یک چارچوب نرمافزاری (فریم ورک) اپلیکیشن تحت وب است، در حالی که PHP یک زبان برنامه نویسی سمت سرور به حساب میآید.
- ASP.NET برای استفاده در ویندوز طراحی شده است، اما PHP یک پلتفرم مستقل محسوب میشود. یعنی امکان استفاده از PHP در پلتفرمهای مختلف وجود دارد.
- در PHP نحوه اجرا به صورت تفسیر شده است، ولی در ASP.NET کد کامپایل و اجرا میشود.
- ASP.NET دارای هزینه مجوز مرتبط با آن است، اما PHP به صورت متن باز و رایگان در دسترس همگان قرار دارد.
منظور از Escaping To PHP چیست؟
موتور تجزیه PHP به راهی برای متمایز کردن کدهای PHP از سایر عناصر صفحه نیاز دارد. مکانیسم دستیابی به این امر به عنوان «فرار به PHP» شناخته میشود. به عنوان مثال، «فرار از یک رشته» به معنای کاهش ابهام در علامت "" استفاده شده در آن رشته است. مثلاً در صورتی که رشته "Hello, InterviewBit" با استفاده از علامت "" یا '' تعریف شود، مشکلی وجود ندارد. اما در شرایطی که درون این رشته مجدداً از علامت "" استفاده شود چطور؟ به منظور درک بهتر، به رشته "Hello "InterviewBit"" توجه شود. در این رشته ابهام وجود دارد. چرا که مفسر توانایی آگاهی از خاتمه چنین رشتهای را ندارد. در صورت نیاز به حفظ این علامتهای نقلقول، روشهای مختلفی فراهم شده است که در ادامه به آنها پرداخته میشود.
- میتوان از نقلقولهای تکی در اطراف رشته مورد نظر استفاده کرد. یعنی آن را به صورت 'Hello "InterviewBit."' در نظر داشت.
- امکان استفاده از تکنیک «فرار از نقلقول وجود دارد. بنابراین میتوان رشته مورد نظر را به صورت "Hello \"InterviewBit.\"" نوشت. در چنین شرایطی، هر نقل قولی که قبل از یک اسلش باشد، اصطلاحاً Escape کرده است و به عنوان بخشی از مقدار رشته شناخته میشود.
چرا در برنامه نویسی وب از CSS ،HTML و جاوا اسکریپت استفاده میشود؟
CSS ،HTML و جاوا اسکریپت بخشهای اساسی وب سایتها را در سراسر جهان تشکیل میدهند. فرد به عنوان یک توسعه دهنده وب، سه فناوری اصلی یعنی HTML، CSS و زبان جاوا اسکریپت را برای ساخت وب سایت استفاده میکند. HTML برای ساختاردهی به سایت و CSS برای طراحی و چیدمان صفحه وب و جاوا اسکریپت برای اضافه کردن قابلیتهای تعاملی و پویا به کار میرود. به طور کلی، طراحی بخش Front End صفحات وب با کمک اطلاعاتی انجام میشود که بر محتوا، سبک و تعامل سایت تاثیر به سزایی دارند.
به عنوان برنامه نویس وب، AJAX چه کاربردی برای شما دارد؟
Ajax بهترین تکنیکها برای بهبود تجربه کاربر در یک برنامه وب را فراهم میکند. AJAX از واژه جاوا اسکریپت ناهمزمان (Asynchronous JavaScript) و XML برگرفته شده و تکنیکی برای ایجاد صفحات وب سریع و پویا است. با استفاده از AJAX، صفحات وب امکان بهروزرسانی به طور غیر همزمان را دارند.
این قابلیت با تبادل مقادیر کمی از دادهها با سرور در پشت صحنه فراهم میشود. به بیان ساده، با به کارگیری AJAX، امکان بهروزرسانی بخشهایی از یک صفحه وب، بدون بارگذاری مجدد کل صفحه وجود دارد.
- مقاله پیشنهادی: استفاده از AJAX در PHP و jQuery — راهنمای مقدماتی
منظور از Path Traversal چیست؟
پیمایش مسیر (Path Traversal) نوعی «حمله» برای خواندن فایلهای یک وب اپلیکیشن است. «../» یک نماد «چندسکویی» (Cross-platform) برای بالا رفتن در فهرست به حساب میآید. در Path Traversal، از این نماد به منظور اجرای فایل برنامه تحت وب استفاده میشود. مهاجم میتواند محتوای فایل مورد حمله را با استفاده از پیمایش مسیر خارج از فهرست اصلی یک وب سرور یا اپلیکیشن فاش کند. معمولاً برای دسترسی به رمزهای عبور مخفی، نشانهها (tokens) و سایر اطلاعات حساس ذخیره شده در فایلها به کار میرود.
منظور از متد نهایی و کلاس نهایی چیست؟
در اعلان متد، «کلمه کلیدی نهایی» (Final keyword) نشان دهده آن است که امکان لغو متد توسط زیرکلاسها وجود ندارد. نمیتوان کلاسی که به عنوان «کلاس نهایی» اعلام میشود را به صورت زیرکلاس قرار داد. این موضوع به ویژه زمانی مفید است که لازم است یک کلاس تغییرناپذیر (Immutable) مانند کلاس String ایجاد شود. در واقع فقط کلاسها و متدها قابلیت تعریف به عنوان نهایی را دارند و ویژگیها (Properties) از چنین امکانی برخوردار نیستند. در این بخش و بخشهای پیشین سوالات مصاحبه برنامه نویسی PHP در سطحهای مقدماتی و متوسط مورد بررسی قرار گرفتند. اکنون در بخش بعدی، برخی از سوالات مصاحبه برنامه نویسی PHP در سطوح پیشرفته و حرفهای شرح داده میشوند. این سوالات مناسب افرادی است که در برنامه نویسی با PHP دارای تجربه هستند.
سوالات مصاحبه برنامه نویسی PHP برای افراد باتجربه
در این بخش از مقاله، به سوالات مصاحبه برنامه نویسی PHP مختلفی پرداخته میشود که در سطوح پیشرفته هستند.
مراحل ایجاد یک پایگاه داده جدید با استفاده از MySQL و PHP چیست؟
برای ایجاد پایگاه داده MySQL جدید در PHP، چهار مرحله اصلی ضروری است که در ادامه به آنها اشاره میشود.
- با استفاده از اسکریپت PHP، برقراری ارتباط با سرور MySQL انجام میشود.
- در شرایطی که اتصال تایید شده است. در صورتی که اتصال موفقیتآمیز باشد، میتوان یک نمونه پرس و جو برای تایید نوشت.
- کوئریهایی به عنوان ورودی در نظر گرفته میشوند که پایگاه داده را ایجاد میکنند و بعداً در یک متغیر رشتهای ذخیره خواهند شد.
- پس از مراحل فوق، کوئریهای ایجاد شده یکی پس از دیگری اجرا میشوند.
کاربرد توابع session_start() و session_destroy() در PHP چیست؟
تابع session_start() به منظور شروع یک جلسه یا همان Session جدید استفاده میشود. علاوه بر این، در صورت توقف یک جلسه موجود، امکان از سر گرفتن آن وجود دارد. در این مورد خاص، در صورتی که مجدداً به جلسه ادامه داده شود، بازگشت به همان جلسه فعلی خواهد بود. به منظور آغاز جلسه از سینتکس session_start(); استفاده میشود. از سوی دیگر، برای از بین بردن یک جلسه میتوان تابع session_destroy() را به کار برد. به منظور درک بهتر عملکرد این تابع، به قطعه کد زیر توجه شود:
1<?php
2session_start();
3session_destroy();
4?>
Memcache و Memcached در PHP چیست؟
Memcached یک «شبح کش» (Caching Daemon) کارآمد به حساب میآید که به طور خاص برای کاهش بار پایگاه داده در اپلیکیشن وبهای پویا طراحی شده است. با استفاده از Memcache، یک رابط رویهای (Procedural) و شیگرای مفید برای Memcached ارائه میشود.
به بیان ساده، Memcached یک سیستم ذخیره سازی توزیع شده حافظه است که به صورت همهمنظوره، اغلب برای سرعت بخشیدن به وب سایتهای مبتنی بر پایگاه داده پویا با ذخیره دادهها و اشیا در حافظه RAM استفاده میشود. در حقیقت، در چنین شرایطی، به کارگیری Memcached، منجر به کاهش تعداد دفعاتی خواندن منبعهای داده خارجی خواهد شد.
آیا امکان اشتراک گذاری یک نمونه از Memcache بین چندین پروژه PHP وجود دارد؟
Memcache یک فضای ذخیرهسازی حافظه است و امکان اجرای Memcache روی یک یا چند سرور وجود دارد. به همین دلیل، میتوان یک نمونه از Memcache را بین چندین پروژه به اشتراک گذاشت. لازم به ذکر است که میتوان یک کلاینت را به گونهای پیکربندی کرد که امکان صحبت با مجموعهای از نمونههای جداگانه را داشته باشد.
بنابراین، امکان اجرای دو فرآیند Memcache مختلف در یک میزبان وجود دارد. با وجود اجرا روی یک میزبان، هر دوی این فرآیندهای Memcache مستقل میمانند، مگر اینکه پارتیشنی از دادهها وجود داشته باشد.
روشهای مختلف مدیریت مجموعه نتایج MySQL در PHP چیست؟
چهار روش برای مدیریت مجموعه نتایج MySQL در PHP وجود دارد که در ادامه به آنها اشاره میشود.
- mysqli_fetch_array(): ردیف فعلی مجموعه نتایج را به عنوان یک آرایه انجمنی (Associative)، یک آرایه عددی یا هر دو برمیگرداند.
- mysqli_fetch_assoc(): ردیف فعلی مجموعه نتایج را به عنوان یک آرایه انجمنی برمیگرداند.
- mysqli_fetch_object(): ردیف فعلی یک مجموعه نتیجه را به عنوان یک شی برمیگرداند.
- mysqli_fetch_row(): ردیف نتیجه را به عنوان یک آرایه شمارش شده (Enumerated) برمیگرداند.
چگونه به یک URL در PHP متصل شویم؟
با استفاده از کتابخانهای به نام cURL، میتوان به راحتی به یک URL در PHP متصل شد. باید توجه کرد که cURL به عنوان یک کتابخانه پیشفرض به همراه نصب استاندارد PHP ارائه میشود. اصطلاح cURL مخفف Client Side URL است.
در cURL از libcurl (کتابخانه انتقال URL سمت سرویسگیرنده) استفاده میشود که در آن، قابلیت پشتیبانی از پروتکلهای بسیاری همچون Kerberos ،IMAP ،HTTPS ،HTTP proxy ،HTTP PUT ،HTTP POST ،HTTP/1 ، FTPS ،FTP و سایر موارد فراهم شده است. به واسطه استفاده از cURL، ميتوان به یک URL متصل شد و از آن صفحه، اطلاعاتی مانند محتوای HTML صفحه، تیترهای HTTP و دادههای مرتبط با آنها را بازیابی کرد و نمایش داد.
با استفاده از PHP cURL POST، مراحل اتصال با URL شرح دهید.
در ادامه به مراحل اتصال با URL با کمک PHP cURL POST پرداخته میشود.
- در وهله اول باید شروع اولیه جلسه cURL انجام شود.
- اکنون لازم است آدرس اینترنتی در جایی مشخص شود که درخواست ارسال میشود. میتوان به طور مستقیم این URL را در پارامتر گزینه inset بخش URL وارد کرد یا آن را به یک شی اختصاص داد.
- اکنون لازم است گزینههای cURL مورد اجرا با گزینه پست، تعریف شوند.
- پس از تنظیم همه توابع، نوبت به اجرای cURL میرسد.
- پس از مراحل فوق، باید cURL بسته و شی مورد نظر Echo شود تا امکان بررسی پاسخ آنهای وجود داشته باشد.
به منظور درک بهتر مراحل فوق، به قطعه کد زیر توجه شود:
1//Step 1 To initialize curl
2 $ch = curl_init();
3//Step 2 To set url where you want to post
4 $url = ‘http://www.localhost.com’;
5//Step 3 Set curl functions which are needs to you
6 curl_setopt($ch,CURLOPT_URL,$url);
7 curl_setopt($ch,CURLOPT_POST,true);
8 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
9 curl_setopt($ch,CURLOPT_POSTFIELD,’postv1 = value1&postv2 = value2’);
10//Step 4 To execute the curl
11 $result = curl_exec($ch);
12//Step 5 Close curl
13 curl_close($ch);
ساخت API در PHP چگونه است؟
API مخفف عبارت «Application Programming Interface» است و با استفاده از آن امکان تعریف توابع و متغیرها وجود دارد. ارتباط بین پایگاه داده از طریق پسوندهای PHP، توسط API انجام میشود. در حال حاضر، در معماری وب REST API، از پروتکل HTTP به منظور تبادل داده بین دو تابع استفاده میشود.
اکنون، به منظور آشنایی بیشتر با مباحث مذکور، به نحوه ایجاد REST API در PHP با در نظر گرفتن مثال دسترسی به دادهها از پایگاه داده با استفاده از اسکریپت PHP پرداخته خواهد شد.
مرحله اول : ساخت یک پایگاه داده
از کوئری زیر به منظور ایجاد پایگاه داده استفاده میشود:
1CREATE DATABASE phptest;
مرحله دوم : ساخت یک جدول
پس از ساخت پایگاه داده مورد نظر، باید یک جدول با استفاده از دادههای Dummy ایجاد شود. به منظور ایجاد جدول، کوئری زیر به کار میرود:
1CREATE TABLE IF NOT EXISTS `transactions`
2(
3 `id` int(20) NOT NULL AUTO_INCREMENT,
4 `order_id` int(50) NOT NULL,
5 `amount` decimal(9,2) NOT NULL,
6 `response_code` int(10) NOT NULL,
7 `response_desc` varchar(50) NOT NULL,
8 PRIMARY KEY (`id`),
9 UNIQUE KEY `order_id` (`order_id`)
10) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
مرحله سوم : ایجاد یک اتصال پایگاه داده
در این مرحله لازم است یک فایل db.php ایجاد شود و اتصال پایگاه داده زیر را در آن قرار گیرد. نکته حائر اهمیت این است که باید از بهروزرسانی شدن این اعتبارنامهها (Credentials) به همراه اعتبارات مربوط به پایگاه داده اطمینان شود.
برای درک بهتر این مباحث، به قطعه کد زیر توجه شود:
1<?php
2// Enter your Host, username, password, database below.
3$con = mysqli_connect("localhost","root","","phptest");
4if (mysqli_connect_errno())
5{
6 echo "Failed to connect to MySQL: " . mysqli_connect_error();
7 die();
8}
9?>
مرحله چهارم : ایجاد یک فایل REST API
به منظور ساخت یک فایل REST API، ابتدا باید یک فایل api.php ایجاد و اسکریپت زیر را در آن کپی شود:
1<?php
2header("Content-Type:application/json");
3if (isset($_GET['order_id']) && $_GET['order_id']!="")
4{
5include('db.php');
6$order_id = $_GET['order_id'];
7$result = mysqli_query($con,
8 "SELECT * FROM `transactions` WHERE order_id=$order_id");
9if(mysqli_num_rows($result)>0)
10 {
11 $row = mysqli_fetch_array($result);
12 $amount = $row['amount'];
13 $response_code = $row['response_code'];
14 $response_desc = $row['response_desc'];
15 response($order_id, $amount, $response_code, $response_desc);
16 mysqli_close($con);
17}
18 else
19 {
20 response(NULL, NULL, 200,"No Record Found");
21}
22}
23else
24{
25response(NULL, NULL, 400,"Request is invalid");
26}
27function response($order_id,$amount,$response_code, $response_desc)
28{
29$response['order_id'] = $order_id;
30$response['amount'] = $amount;
31$response['response_code'] = $response_code;
32 $response['response_desc'] = $response_desc;
33$json_response = json_encode($response);
34echo $json_response;
35}
36?>
با استفاده از تکه کد فوق، درخواست GET پذیرفته میشود و خروجی در قالب JSON بازگردانده خواهد شد. اکنون میتوان یک خروجی مشابه زیر دریافت کرد:
PDO در PHP چیست؟
PDO مجموعهای از پسوندهای PHP است که به کمک آن، یک کلاس اصلی PDO و پایگاه داده و درایورهای خاصی ارائه میشوند. PDO مخفف عبارت «PHP Data Object» است. پسوند PDO قابلیت دسترسی به پایگاه دادههای مختلفی را دارد که برای درایور PDO نوشته شدهاند. چندین درایور PDO وجود دارند که برای FreeTDS ،Microsoft SQL Server ،IBM Sybase، Oracle Call Interface ،Firebird ،DB2، پایگاه داده PostgreSQL و سایر موارد استفاده میشوند.
در چنین شرایطی، یک لایه انتزاعی سبک وزن و با قابلیت دسترسی به دادهها ارائه میشود. از این رو، مهم نیست از چه پایگاه داده خاصی استفاده شود، چون عملکرد صدور پرس و جو و واکشی دادهها یکسان خواهد بود. یعنی به جای انتزاع پایگاه داده، تمرکز اصلی روی انتزاع دسترسی به دادهها است.
تفاوت بین GET و POST چیست؟
- متد GET برای درخواست داده از یک منبع مشخص کاربرد دارد، در حالی که متد POST برای ارسال دادهها به سرور، به عنوان یک بسته در یک ارتباط جداگانه با اسکریپت پردازشی به کار میرود.
- در متد GET، دادهها در قالب پارامترهای URL ارسال میشوند که این پارامترها رشتههایی از جفتهای نام و مقدار هستند و با علامت & از هم جدا میشوند. در صورتی که دادههای ارسال شده از طریق روش POST، در URL دیده نمیشوند.
- متد GET را نمیتوان برای ارسال دادههای باینری مانند تصاویر یا اسناد Word استفاده کرد. اما امکان استفاده از متد POST برای ارسال دادههای ASCII و باینری مانند تصاویر و اسناد word وجود دارد.
- در شرایطی که اطلاعات حساسی مانند رمز عبور برای ارسال به سرور وجود دارند، نباید از متد GET استفاده کنید، در حالی که با استفاده از متد POST، قابلیت ارسال اطلاعات حساس فراهم شده است.
- میتوان از متد GET برای ارسال فرمهایی استفاده کرد که در آن کاربر امکان نشانهگذاری (Bookmark) نتیجه را دارد. ولی امکان نشانهگذاری موارد ارسالی از طریق فرم با متد POST وجود ندارد.
- می توان از روش GET برای ارسال دادههایی استفاده کرد که امن نیستند. دادههای ارسال شده از طریق متد POST ایمن محسوب میشوند.
- با توجه به اینکه در متد GET، ممکن است پارامترها در گزارشهای وب سرور یا History مرورگر ذخیره شوند، بنابراین امنیت آن از متد POST بیشتر نیست.
نوع hinting در PHP به چه معنی است؟
در PHP، نوع hinting برای تعیین نوع داده مورد انتظار (آرایهها، اشیا، رابط و سایر موارد) برای یک آرگومان در اعلان تابع کاربرد دارد و در نسخه PHP 5 معرفی شده است. هر زمان که تابع فراخوانی میشود، از طریق PHP، بررسی میشود آیا آرگومانها از نوع ترجیحی کاربر هستند یا نه.
در صورتی که آرگومان از نوع مشخص شده نباشد، در محیط زمان اجرا، یک خطا نمایش داده میشود و برنامه اجرا نخواهد شد. این خصوصیت باعث میشود سازماندهی کدها به شکل بهتری انجام شود و همچنین، پیامهای خطا بهبود بیابند. به منظور درک بهتر نوع Hinting در PHP، به قطعه کد زیر توجه شود:
1//sendEmail() function argument $email is type hinted of Email Class. It means to call this function you must have to pass an email object otherwise an error is generated.
2<?php
3 function sendEmail (Email $email)
4 {
5 $email->send();
6 }
7?>
چگونه اجرای اسکریپت در PHP را خاتمه دهیم؟
به منظور پایان دادن به اجرای اسکریپت در PHP تابع exit() به کار میرود. exit() یک تابع پیشساخته (Built-in) است که با استفاده از آن، یک پیام در خروجی نمایش داده میشود و پس از آن اسکریپت فعلی خاتمه مییابد. برای نمایش پیام مورد نظر در خروجی، لازم است آن پیام به عنوان پارامتر به تابع exit() ارسال شود.
خاتمه اسکریپت توسط این تابع پس از نمایش پیام انجام خواهد شد. لازم به ذکر است که تابع exit() دارای یک نام مستعار (Alias) با نام ()die است. هیچ مقداری توسط این تابع برگردانده نمیشود. سینتکس تابع exit() به صورت exit(message) است که در آن، message پارامتری است که باید به عنوان آرگومان ارسال شود و برای تعریف یک پیام یا وضعیت کاربرد دارد. به منظور درک بهتر نحوه عملکرد تابع exit()، به قطعه کد زیر توجه شود:
1<?php
2$site = "https://www.interviewbit.com//";
3fopen($site,"r")
4or exit("Unable to connect to $site");
5?>
با استفاده از تکه کد فوق، در صورت عدم دسترسی به سایت مورد نظر، یک پیام در خروجی نمایش داده میشود و از اسکریپت مربوطه خارج خواهد شد.
Composer چیست و چگونه آن را نصب کنیم؟
Composer ابزاری برای مدیریت وابستگی (Dependency) در PHP است. با استفاده از Composer، امکان نصب و مدیریت کتابخانههایی فراهم میشود که پروژه مورد نظر به آنها وابستهاند. توجه به این نکته مهم است که با استفاده از Composer بر اساس هر پروژه، کتابخانههای لازم نصب میشوند و به واسطه قابلیتهای آن، میتوان از نسخههای مختلف یک کتابخانه در پروژههای مختلف PHP استفاده کرد. البته، به منظور نصب کتابخانه به صورت سراسری نیز گزینه خاصی وجود دارد، اما معمولاً استفاده از کتابخانه به این طریق توصیه نمیشود.
به طور کلی، کاربرد Composer در PHP مشابه npm برای Node.js یا Bundler برای Ruby است. برای نصب و استفاده از کتابخانههایی که توسط Composer مدیریت میشوند، فقط باید آنها را در قالب استاندارد در پروژه خود اعلام کرد و بقیه موارد مدیریتی توسط ابزار Composer انجام خواهند شد. به عنوان مثال، در صورتی که لازم باشد کتابخانه phpmailer با استفاده از Composer نصب شود، این عمل با اجرا دستور $composer require phpmailer/phpmailer در ریشه پروژه مورد نظر امکانپذیر است.
چگونه میتوان مشکلات وب اپلیکیشنها را در PHP عیبیابی کرد؟
در طول توسعه یا آزمایش، همه اشکالات یک پروژه توسعه وب قابل تشخیص نیستند. حتی در برخی شرایط خطاهایی وجود دارند که به سختی میتوان آنها را پیدا کرد. به طوری که اغلب توسعه دهندگان PHP یا مدیران سرور تنها زمانی به آن خطاها رجوع میکنند که مشکلی در وب سرور یا گزارشهای پایگاه داده دریافت شود. به منظور بررسی خطا، به گزارشها (Logs) یا Timestamp خاصی رجوع میشود که در آنها خطا مربوطه رخ داده است.
این روش عیبیابی مشکلات در PHP، علاوه نیاز به مهارت فنی بالایی، زمان زیادی برای یافتن علت اصلی مشکل میطلبد. در ادامه این بخش از بررسی سوالات مصاحبه برنامه نویسی PHP برخی از رایجترین مشکلات احتمالی شرح داده میشوند. بدین ترتیب، در زمان وقوع خطا، در وهله اول باید این موارد بررسی شوند تا در صورت نیاز، امکان رفع مشکلات به صورت سریع و آسان وجود داشته باشد.
- مشکلات مربوط سازگاری نسخه PHP
- مشکل بارگذاری صفحه به طور نامحدود
- مشاهده گزارشهای PHP
- استفاده از ویژگیهای گزارشدهی پیشساخته و ردیابی خطا موجود در فریم ورکهای PHP (به عنوان مثال، لاراول)
- مشاهده تمام گزارشها در یک مکان و به صورت متمرکز
- عیبیابی درخواستهای کند (Slow Requests)
با توجه فراوانی سوالات مصاحبه برنامه نویسی PHP در موقیعتهای شغلی مختلف، در بخش بعدی این مطلب، سایر سوالات رایج بررسی میشوند. البته باید توجه کرد که ممکن است این سوالها، بر اساس شرکت انتخابی با یکدیگر تفاوت داشته باشند.
سایر سوالات مصاحبه برنامه نویسی PHP
در این بخش از بررسی سوالات مصاحبه برنامه نویسی PHP به سایر سوالات مهم در زمینه برنامه نویسی وب اشاره میشود. با وجود اینکه معمولاً این سوالها بر اساس شرکت مورد نظر و بسیاری از عوامل دیگر متفاوت هستند، اما برای درک بهتر وظایف این شغل و همچنین واضحتر شدن هر چه بیشتر سوالات مصاحبه برنامه نویسی PHP، به تعدادی از آنها پرداخته میشود.
- در طول برنامه نویسی با PHP با چه خطاهایی مواجه شدید و چگونه آنها را برطرف کردید؟
- تا چه اندازه با MySQL آشنا هستید؟
- چگونه پلاگینها را ادغام و یا ایجاد کرد؟
- آیا تجربه کار با پروژههای متن باز را دارید؟
- در ارتباط با تعدای از بهترین پروژههای خود توضیح مختصری ارائه دهید.
- از نظر شما دشوارترین بخش از برنامه نویسی Back End چیست؟
- برای افرایش کیفیت پروژههای مورد نظر کاربر، چگونه برنامه نویسی میکنید؟ مثال بزنید.
- چگونه پایداری ماژولها را تست میکنید؟
علاوه بر سوالات تخصصی برنامه نویسی PHP، سوالات شناخت شخصیت نیز اهمیت بسیاری دارند. از این رو، اکنون در بخش بعدی این مطلب، به برخی از سوالات مصاحبه برنامه نویسی PHP مربوط به شناخت شخصیت برنامه نویسان اشاره میشود. به واسطه آگاهی از انواع سوالات مصاحبه برنامه نویسی PHP ، برنامه نویسان امکان دستیابی به موقعیتهای شغلی بهتری را دارند.
سوالات مصاحبه برنامه نویسی PHP (شخصیتی)
در این بخش برخی از آن دسته از سوالات مصاحبه برنامه نویسی PHP بررسی میشوند که با استفاده از آنها شخصیت برنامه نویس شناخته میشود.
- در صورتی که اخیراً روی یک پروژه سرگرمکننده کار کردید، آن را معرفی کنید.
- اگر شرایط آن وجود داشته باشد علاقهمند به شرکت در کدام سمینار فناوری هستید؟ چرا؟
- روش شما برای کشف تمام ترندهای موجود چیست؟
- موقعیتی را تصور کنید که در آن امکان همکاری با برنامه نویسان و مهندسان متعددی وجود دارد. در این صورت، شما چه وظایفی را بر عهده میگیرید؟
در نهایت، در قسمت پایانی از مطلب «سوالات مصاحبه برنامه نویسی PHP» برخی از دورههای شاخص مرتبط با این زبان برنامه نویسی بررسی میشوند.
جمعبندی
با توجه به بازار کار کنونی، مشخص است که برنامه نویسی وب یکی از مشاغل محبوب و پردرآمد به حساب میآید. در این مقاله، به تعدادی از مهمترین سوالات مصاحبه برنامه نویسی PHP پرداخته شد. این سوالات به طور اختصاصی برای برنامه نویسان PHP در سطوح مختلف، از مبتدی تا پیشرفته دستهبندی شدهاند.
با آشنایی با سوالات مصاحبه برنامه نویسی PHP ، میتوان آمادگی لازم برای حضور در مصاحبههای کاری را کسب کرده و به دنبال آن، به موقعیتهای شغلی مناسبی رسید. از این رو، مطالعه این مقاله به عنوان یک راهنمای کاربردی به منظور آمادگی و ورود هر چه سریعتر به بازار کار برنامه نویسی PHP به حساب میآید.
عالی و به درد بخور
خسته نباشید✌️