نحوه ایجاد وب سایت با PHP با یک مثال ساده


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

وب سایتی که با PHP خواهید ساخت

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

خواندن را از دست ندهید: مهارت های طراحی وب سایت مورد نیاز (7 مهارت مورد نیاز)

ساختار کلی سایت

برخی از فایل ها و دایرکتوری های کلیدی که باید بررسی شوند عبارتند از:

composer.json
داده ها/
funcs.php
MD/
سایت/
index.php
tpl/

  • هر صفحه به یک اسکریپت PHP در فهرست سایت پیوند دارد. البته این تعداد صفحه زیاد است اما همه چیز ساده است. هنگام تنظیم وب سرور خود، مطمئن شوید که مسیر سند یا DocRoot خود را در فهرست سایت مشخص کرده اید.
  • دایرکتوری md حاوی فایل های منبع Markdown است که محتوای اصلی برخی از صفحات را ذخیره می کند.
  • دایرکتوری tpl شامل قالب ها و فایل هایی است که سبک کلی HTML را تعریف می کنند. این ساختارها می توانند چندین صفحه را به اشتراک بگذارند.
  • اکثر توابع PHP در funcs.php هستند.

10 تا از بهترین زبان های برنامه نویسی برای طراحی وب و طراحی سایت

نحوه کار سایت

بوت استرپ

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

شما می توانید فایل های Bootstrap را روی سرور خود نصب و میزبانی کنید، اما برای حداکثر سرعت فقط می توانید آنها را از CDN دریافت کنید. به tpl/head.php نگاه کنید، باید مثالی مانند این ببینید:

href=”
rel=”سبک شیت”
یکپارچگی=”sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3″
متقاطع = “ناشناس”
/>

قالب بندی اولیه

با site/index.php شروع کنید. این فایلی است که نمایانگر صفحه اصلی سایت است. بسته به نحوه تنظیم وب سرور شما، باید بتوانید در http://site به آن دسترسی داشته باشید. و در صورت خطا index.php.

توجه داشته باشید که این دو دقیقاً در ابتدای این فایل هستند: funcs.php و TPL_DIR.”/home.php”. فایل funcs.php ثابت TPL_DIR را به عنوان مسیر مطلق کامل دایرکتوری tpl سطح بالای سایت تعریف می کند.

نگاهی به tpl/home.php بیندازید. این بیرونی ترین اسکلت یک سند html است: فقط حاوی یک تگ doctype و یک عنصر HTML است. در عنصر HTML، از دو محتوای قالب استفاده می کند که نشان دهنده سر و بدن است.





در مقابل، الگوی بخش پرندگان یک الگوی بدنه متفاوت، tpl/birds/body.tpl را بارگیری می‌کند. این قالب شامل صفحه بندی های مختلف می باشد و دارای نوار کناری برای صفحات این بخش می باشد.

حتما بخوانید: ساده ترین زبان های برنامه نویسی برای شروع

مارک داون را تحلیل کنید

یک کتابخانه شخص ثالث به نام erusev/parsedown در فایل composer.json مورد نیاز است. این کتابخانه برای تجزیه Markdown است و به شما امکان می دهد متن Markdown را به راحتی به HTML تبدیل کنید.

بسیاری از سایت های استاتیک HTML نهایی را برای اسناد نوشته شده به زبان دیگری مانند Markdown تولید می کنند. این زبان از نظر نوشتاری سینتکس بهتری دارد که خواناتر از HTML است. سایت نمونه این را به عنوان یک گزینه اختیاری ارائه می دهد. تابع show_content() را در func.php ببینید:

تابع show_content() {
$file = MD_DIR.PAGE.'.md';

if (file_exists ($file)) {
$Parsedown = new Parsedown();
echo $Parsedown->text(file_get_contents($file));
} else if (function_exists («محتوا»)) {
echo content();
}
}

اگر یک فایل Markdown مطابق با صفحه درخواستی وجود داشته باشد، یک شی Parsedown محتوای آن را به HTML تبدیل می کند و آن را خروجی می کند. اگر فایل Markdown وجود نداشته باشد، در عوض به دنبال تابعی به نام content() می گردد. اگر محتوای صفحات منفرد از آنچه Markdown ثابت می تواند انجام دهد بیشتر باشد، آن صفحات می توانند این ویژگی را تعریف کنند.

در حال بارگیری متادیتا

به تابع get_json در funcs.php نگاهی بیندازید:

تابع get_json ($file) {
$data_file = DATA_DIR.”/”.$file;

اگر (!file_exists($data_file)) {
بازگشت آرایه();
}

if (($json = file_get_contents($data_file)) === نادرست) {
بازگشت آرایه();
}

if (($out = json_decode ($json، درست)) === null) {
بازگشت آرایه();
}

بازگشت $out;
}

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

این سایت از دو فایل ابرداده استفاده می کند: data/titles.json و data/featured.json. اولی عنوان هر صفحه را ذخیره می کند که برای لینک سازی خودکار در موارد دیگر نیز مفید است.

{
“/”: “در خانه”،
«/about»: «درباره»
“/birds”: “Bird Profiles”,

}

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

تابع page_title ($page = PAGE) {
$titles = get_titles();
array_key_exists ($page، $titles) را برمی گرداند؟ $titles($page): mainname($page);
}

در اینجا اولین بخش از تابع breadcrumbs() (از funcs.php) است که آرایه ای از عناوین صفحه را برای هر قسمت از URL ایجاد می کند. به عنوان مثال، در مورد صفحه /birds/blue-tit، عنوان صفحه، سپس عنوان /birds و در نهایت عنوان برای /birds/blue-tit را بازیابی می کند.

تابع breadcrumbs() {
$items = array();
$titles = get_titles();
$parts = explode(“/”, PAGE);
$href = “”;

foreach ($parts به عنوان $part) {
$href .= ($href == “/” ? “” : “/”).$part;
$items($href) = $titles($href);
}

}

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

اگر در حال مشاهده یک صفحه Abouy، یک خبرنامه خاص، یا نمایه یک پرنده خاص هستید، باید بتوانید آخرین پیام به روز شده را در فوتر مشاهده کنید. فوتر سایت در tpl/footer.php ذخیره می شود. این فایل را باز کنید و قطعه PHP را در آن بنویسید:

if (file_exists($file = MD_DIR.PAGE.'.md')) {
echo 'آخرین به روز رسانی: '.date('r', filemtime(MD_DIR.PAGE.'.md'));
}

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

بازیابی داده ها با استفاده از عبارات منظم

به عنوان مثال، برای نمایش خلاصه اخبار در صفحه محتوا، معمولاً لازم است از محتوای یک سایت مجددا استفاده شود. در یک CMS کامل، بهتر است این داده ها به عنوان فیلدهای اضافی در یک پایگاه داده ذخیره شوند. به دلیل رویکرد ساده فایل مسطح، باید متفاوت فکر کنید.

اخبار این سایت به عنوان یک فایل Markdown ذخیره می شود، بنابراین محتوای خام در دسترس است. عبارات منظم ابزار مفیدی است که به شما امکان می دهد محتوا را مطابقت دهید و بازیابی کنید. فایل news/index.php این کار را برای نمایش محتوای خود انجام می دهد. محتویات هر فایل را در فهرست md/news به صورت رشته ای استخراج کنید. سپس چندین عبارت منظم را برای بازیابی داده ها قرار می دهد.

عنوان خطی است که بر اساس نحو Markdown با علامت # شروع می شود. پس از آن یک فضای خالی اختیاری قبل از عنوان واقعی وجود دارد. عبارت منظم ^#\s+(.+) با الگوی متن مطابقت دارد و preg_match() هر چیزی را که با پرانتز (یعنی عنوان) مطابقت داشته باشد برمی گرداند.

if (preg_match(“/^#\​s+(.+)/”, $contents, $matches)) {
$title = $matches(1);
}

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

دانلود به همراه این مقاله: آموزش طراحی سایت از صفر تا صد (16 درس رایگان)

انتخاب تصادفی محتوا

صفحه /birds کار زیادی انجام نمی دهد، بنابراین یک تصویر تصادفی از یک پرنده آن را جالب تر می کند. این را می توان به راحتی با کاوش در سیستم فایل و عملکرد ساخته شده در PHP به دست آورد. جادو در site/birds/index.php اتفاق می افتد:

محتوای تابع () {
$files = scandir(SITE_DIR.”/img”);
$files = array_filter($files, function($file) { return $file(0) != '.'; });
$file = $files(array_rand($files));

اکو

پرنده ها

';
اکو';
}

ترفند این است که همه تصاویر را برای آن ویژگی خاص در یک دایرکتوری سازماندهی کنید. سپس تابع scandir() فایل ها را از آن دایرکتوری در یک آرایه می خواند و ()array_rand یک کلید تصادفی از آرایه به ما می دهد تا تابع بتواند یک فایل جداگانه را انتخاب کند.

PHP چگونه می تواند به شما کمک کند؟

پی اچ پی در طول سالیان متمادی جایگاه خود را به عنوان تکیه گاه اصلی 80 درصد وب سایت ها حفظ کرده است که قابل قبول است!

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

فراموش نکنید که دانلود کنید: 2 بهترین کتاب درسی طراحی سایت

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

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

اگر به دنبال زبانی برای ساخت وب سایت، فروشگاه آنلاین یا برنامه خود هستید، PHP را انتخاب کنید زیرا:

  • او انعطاف پذیر است.
  • سازگار است.
  • می توان آن را توسعه داد.
  • امن است.
  • راندمان بالایی دارد.
  • او در دسترس است.
  • خوب نگه میداره
  • نگهداری و نگهداری آسان.
  • بسیاری از برنامه نویسان با PHP کار می کنند.

دانلود را فراموش نکنید: صفر تا صد آموزش PHP

با هر نسخه جدید، PHP سریعتر از قبل می شود. آخرین نسخه، PHP 8.0، شامل یک کامپایلر در محل (JIT) است که از تمام نسخه های قبلی بهتر عمل می کند.

آموزش تصویری ساخت سایت فروشگاهی با PHP در 3 جلسه

بخوانید: آموزش HTML CSS (پروژه گرا)