نصب و راهاندازی (PHP Install)
نصب و راهاندازی: آمادهسازی آزمایشگاهِ محلی 🛠️🔬
برای شروعِ کدنویسی، کامپیوتر شما باید نقشِ یک سرور را بازی کند. سه راهِ اصلی برای این کار وجود دارد:
۱. بستههایِ آماده (XAMPP / WAMP)
محبوبترین راه برایِ مبتدیان. این بستهها شامل PHP، وبسرور Apache و پایگاهداده MySQL هستند که با یک کلیک نصب و اجرا میشوند.
۲. داکر (Docker) - انتخاب حرفهایها 🐳
در پروژههایِ واقعی، ما از Containerها استفاده میکنیم تا محیطِ توسعه دقیقاً مشابه سرورِ نهایی باشد. این کار از مشکلِ مشهورِ "روی کامپیوترِ من کار میکرد!" جلوگیری میکند.
۳. نصبِ دستی
اگر از لینوکس استفاده میکنید، نصبِ جداگانهیِ پکیجهای php, apache2 و mysql-server تسلطِ بیشتری به شما میدهد.
info.php بسازید و کد زیر را در آن قرار دهید. اگر با باز کردن آن در مرورگر، جدول مشخصات جاوا را دیدید، همه چیز درست است:
{code_block('phpinfo();')}
پیکربندی فایل php.ini ⚙️
فایل php.ini قلبِ تنظیماتِ PHP است. در اینجا میتوانید محدودیتِ آپلود فایل، نمایش خطاها و تنظیمات حافظه را تغییر دهید.
بخش تخصصی: کالبدشکافی زبان PHP و موتور Zend 🐘⚙️
درکِ عمیقِ PHP نیازمند آشنایی با آن چیزی است که در پشتِ صحنه اتفاق میافتد. PHP یک زبانِ تفسیری (Interpreted) است که توسط موتور قدرتمند Zend Engine اجرا میشود.
۱. چرخه عمر درخواست (Request Lifecycle)
در هر بار لود شدنِ صفحه، PHP مراحلِ زیر را طی میکند:
- Lexing/Scanning: تبدیلِ کدها به توکنهایِ معنادار.
- Parsing: ساختِ یک ساختارِ درختی از کدها (AST).
- Compilation: تبدیلِ درختِ کد به OpCodes (دستورالعملهایِ سطحِ پایین).
- Execution: اجرایِ OpCodeها توسط مفسرِ Zend.
۲. مدیریت حافظه (Zend Memory Manager)
PHP برخلافِ زبانهایی مثل C، مدیریتِ حافظه را به صورتِ خودکار انجام میدهد. با استفاده از تکنیکِ Reference Counting و یک Garbage Collector هوشمند، اشیاء و متغیرهایی که دیگر استفاده نمیشوند را از حافظه پاک میکند تا سرور دچارِ کراش نشود.
۳. سیستمِ تایپِ پویا (Dynamic Typing)
در PHP، متغیرها نوعِ ثابتی ندارند. این انعطافپذیری به لطفِ ساختارِ دادهای به نام zval (Zend Value) ممکن شده است که در هر لحظه میتواند اطلاعاتی درباره نوع و مقدارِ داده را در خود نگه دارد.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
تابعی در PHP وجود دارد که تمام اطلاعاتِ سیستم و ورژن را نشان میدهد. نام این تابع را بنویسید (داخل تگ PHP).
<?php
phpinfo();
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.