بهترین منابع آموزشی برنامه نویسی فارسی

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

بهترین منابع آموزشی برنامه نویسی فارسی

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

سلام خوش آمدید

۳ مطلب با کلمه‌ی کلیدی «آموزش php» ثبت شده است

ویژوال استودیو کد (Visual Studio Code) یک ویرایشگر کد بسیار محبوب در میان توسعه‌دهندگان است که به دلیل انعطاف‌پذیری و اکوسیستم غنی افزونه‌هایش شناخته می‌شود. اگر شما یک توسعه‌دهنده PHP هستید و به دنبال بهبود جریان کاری خود می‌باشید، افزونه‌های خاصی وجود دارند که می‌توانند کار شما را بسیار آسان‌تر کنند. بیایید نگاهی به بهترین افزونه‌های ویژوال استودیو کد برای توسعه‌دهندگان PHP که باید در سال 2024 نصب کنید، بیندازیم.

 

ده افزونه ی به درد بخور برای برنامه نویسان PHP در محیط VS-code

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

 

آموزش نصب افزونه

 

بعد از نصب افزونه ها بهتر است یکبار محیط vscode را بسته و مجددا باز کنید.

 

1. PHP Intelephense

توضیحات: PHP Intelephense یک سرور زبان قدرتمند PHP است که تکمیل کد هوشمند، گزارش خطای لحظه‌ای، و ایندکس‌بندی تعریف کلاس‌ها را ارائه می‌دهد. این ابزار با ویژگی‌هایی مانند نمایش اطلاعات با حرکت نشانگر، رفتن به تعریف، و یافتن ارجاعات، تجربه کدنویسی شما را به طور قابل توجهی بهبود می‌بخشد.

 

2. PHP Debug

توضیحات: PHP Debug به شما امکان می‌دهد کد PHP خود را مستقیماً در ویژوال استودیو کد اشکال‌زدایی کنید. با ادغام Xdebug، می‌توانید نقاط توقف تنظیم کنید، متغیرها را بررسی کنید، و کد خود را مرحله به مرحله اجرا کنید. این افزونه ابزاری ضروری برای رفع اشکال و اطمینان از اجرای صحیح کد شما است.

 

3. PHP CS Fixer

توضیحات: PHP CS Fixer به شما کمک می‌کند کد PHP خود را به صورت خودکار طبق استانداردهای متعارف کدنویسی قالب‌بندی کنید. این ابزار با اطمینان از اینکه کد شما از یک سبک یکسان پیروی می‌کند، در زمان و تلاش شما صرفه‌جویی کرده و خوانایی و نگهداری آن را آسان‌تر می‌سازد.

 

4. Twig

توضیحات: اگر در پروژه‌های PHP خود با قالب‌های Twig کار می‌کنید، این افزونه ضروری است. این ابزار برجسته‌سازی نحوی، تکمیل خودکار، و کدهای آماده برای Twig را فراهم می‌کند و نوشتن و مدیریت قالب‌های شما را آسان‌تر می‌سازد.

 

5. PHPUnit

توضیحات: افزونه PHPUnit چارچوب تست PHPUnit را در ویژوال استودیو کد ادغام می‌کند. این امکان را به شما می‌دهد که تست‌ها را اجرا کرده و نتایج را مستقیماً درون ویرایشگر مشاهده کنید. این ادغام نوشتن و اجرای تست‌ها را راحت‌تر کرده و جریان کاری تست شما را بهبود می‌بخشد.

 

6. PHP DocBlocker

توضیحات: PHP DocBlocker فرآیند نوشتن کامنت‌های PHPDoc را ساده می‌کند. این ابزار می‌تواند به صورت خودکار بلاک‌های مستندات را برای توابع، کلاس‌ها و ویژگی‌های شما تولید کند و اطمینان حاصل کند که کد شما به خوبی مستندسازی شده و درک آن آسان‌تر است.

 

7. Composer

توضیحات: این افزونه Composer، مدیر وابستگی PHP، را در ویژوال استودیو کد ادغام می‌کند. این امکان را به شما می‌دهد که وابستگی‌های پروژه خود را مدیریت کنید، دستورات Composer را اجرا کنید و بسته‌های خود را مستقیماً از ویرایشگر به‌روزرسانی کنید.

 

8. PHP Namespace Resolver

توضیحات: PHP Namespace Resolver به شما کمک می‌کند فضای‌نام‌ها را در فایل‌های PHP خود مدیریت و وارد کنید. این ابزار می‌تواند به صورت خودکار فضای‌نام‌ها را ایجاد و به‌روزرسانی کند و اطمینان حاصل کند که کد شما از ساختار صحیح پیروی می‌کند و خطر بروز خطا کاهش می‌یابد.

 

9. PHP Snippets

توضیحات: PHP Snippets مجموعه‌ای جامع از قطعه کدهای مفید برای توسعه PHP فراهم می‌کند. این قطعه کدها می‌توانند به شما کمک کنند تا با وارد کردن الگوهای کد و کدهای پایه پرکاربرد تنها با چند ضربه کلید، سریع‌تر کدنویسی کنید.

 

10. Laravel Artisan

توضیحات: برای توسعه‌دهندگان لاراول، افزونه Laravel Artisan یک تغییر‌دهنده بازی است. این افزونه به شما امکان می‌دهد دستورات Artisan را مستقیماً از ویژوال استودیو کد اجرا کنید و تعامل با رابط خط فرمان برنامه لاراول خود را بدون ترک ویرایشگر آسان‌تر می‌سازد.

 

سؤالات متداول  


سؤال 1: آیا این افزونه‌ها رایگان هستند؟  

بله، بیشتر این افزونه‌ها رایگان برای استفاده هستند، هرچند برخی از آن‌ها ممکن است ویژگی‌های پریمیوم ارائه دهند یا از طریق دریافت کمک‌های مالی از توسعه پشتیبانی کنند.  

سؤال 2: آیا می‌توانم از این افزونه‌ها برای زبان‌های برنامه‌نویسی دیگر استفاده کنم؟  

در حالی که این افزونه‌ها به‌طور خاص برای PHP طراحی شده‌اند، ویژوال استودیو کد یک اکوسیستم وسیع از افزونه‌ها برای تقریباً هر زبان برنامه‌نویسی که ممکن است استفاده کنید، ارائه می‌دهد.  

سؤال 3: چگونه می‌توانم این افزونه‌ها را نصب کنم؟  

شما می‌توانید این افزونه‌ها را مستقیماً از مارکت‌پلیس ویژوال استودیو کد نصب کنید. کافی است نام افزونه را در نمای Extensions (Ctrl+Shift+X) جستجو کرده و روی 'Install' کلیک کنید.  

سؤال 4: آیا این افزونه‌ها در تمام سیستم‌عامل‌ها کار می‌کنند؟  

بله، به شرطی که ویژوال استودیو کد را نصب کرده باشید، این افزونه‌ها باید روی ویندوز، مک‌او‌اس و لینوکس کار کنند.

 

 

  • نفس کریمی زاده

سورس کد به انتهای آموزش اضافه شد / دمو ویدیویی به انتهای اموزش اضافه شد 

 

آموزش ساخت سیستم ثبت نام و ورود در PHP و با پایگاه داده MySQL

 

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

در این مقاله از زبان برنامه نویسی PHP و پایگاه داده MYSQL استفاده خواهیم کرد . 

اولین کاری که باید انجام دهید تنظیم کردن یک پایگاه داده است : 

یک پایگاه داده جدید بسازید و نام آنرا registration قرار دهید در این پایگاه داده یک جدول جدید بسازید به نام users . جدول users باید فیلدهای زیر را داشته باشد : 

  • id
  • username  -  varchar(100)
  • email  -  varchar(100)
  • password  -  varchar(100)

 

شما میتوانید پایگاه داده و جدول های درون آن و همچنین فیلدهای درون جدول را با استفاده از برنامه PHPMyAdmin بسازید . اگر از XAMPP استفاده میکنید در مرورگرخود به آدرس localhost/phpmyadmin بروید . 

 

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

 

آموزش ساخت ثبت نام و ورود کاربران با استفاده از php و mysql

 

اگر قصد دارید بدون استفاده از phpmyadmin و با استفاده از کدهای زبان sql این کار را انجام دهید میتوانید بصورت زیر جدول را بسازید : 

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `username` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 

اتمام ساخت پایگاه داده ثبت نام و ورود با PHP - MySQL

 

حالا باید یک دایرکتوری ( فولدر ) جدید بسازیم که مربوط به پروژه ی ما میباشد و قرار است فایل های php ما درون آن قرار بگیرد پس در روت اصلی وب سرور مجازی که استفاده میکنیم ( فرض ما این است که شما از xampp استفاده میکنید ) یک دایرکتوری جدید به نام registration  میسازیم . مسیر اصلی روت در xampp درون پوشه ی htdocs میباشد . 

بعد از ساختن پوشه ی registration فایل های php زیر را درون آن بسازید : 

آموزش ثبت نام و ورود در php و mysql 

اگر در دیدن تصویر بالا مشکل دارید من لیست فایل ها را دوباره اینجا نوشتم : 

  • errors.php
  • index.php
  • login.php
  • register.php
  • server.php
  • style.css

 

دایرکتوری یا پوشه ی پروژه را درون یک ادیتور یا ide وب مثل phpstorme یا sublime یا atom باز کنید . 

 

ثبت نام کاربر با استفاده از PHP و MYSQL

 

فایل  register.php را باز کنید و کدهای زیر را درون آن کپی کنید : 

 

register.php : 

 

<?php include('server.php') ?>
<!DOCTYPE html>
<html>
<head>
  <title>Registration system PHP and MySQL</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div class="header">
  	<h2>Register</h2>
  </div>
	
  <form method="post" action="register.php">
  	<?php include('errors.php'); ?>
  	<div class="input-group">
  	  <label>Username</label>
  	  <input type="text" name="username" value="<?php echo $username; ?>">
  	</div>
  	<div class="input-group">
  	  <label>Email</label>
  	  <input type="email" name="email" value="<?php echo $email; ?>">
  	</div>
  	<div class="input-group">
  	  <label>Password</label>
  	  <input type="password" name="password_1">
  	</div>
  	<div class="input-group">
  	  <label>Confirm password</label>
  	  <input type="password" name="password_2">
  	</div>
  	<div class="input-group">
  	  <button type="submit" class="btn" name="reg_user">Register</button>
  	</div>
  	<p>
  		Already a member? <a href="login.php">Sign in</a>
  	</p>
  </form>
</body>
</html>

 

تا کنون هیچ چیز پیچیده ای وجود ندارد . 

 

فقط چندتا نکته وجود دارد که باید به آنها توجه کنید : 

اولا که action فرم در کدهای بالا روی فایل register.php میباشد . معنی این بخش این است که وقتی فرم ارسال میشود یا روی ثبت نام کلیک میشود داده های فرم به خود صفحه ی register.php ارسال میشود نه جای دیگری . 

بخشی که وظیفه ی دریافت داده های فرم را دارد در server.php نوشته شده است به همین علت ما در بالای کدهای خود فایل server.php را اینکلود کرد یم . 

توجه کنید که ما فایل errors.php را هم اینکلود کردیم که وظیفه ی نمایش خطاها را دارد ، جلوتر آنرا توضیح خواهیم داد . 

 

در کدهای بالا درون تگ head ما یک فایل استایل به نام style.css را به صفحه ی خودمان لینک کردیم . style.css  شامل کدهای CSS مربوط به استایل صفحه ی ما است . کدهای زیر را درون style.css کپی کنید : 

* {
  margin: 0px;
  padding: 0px;
}
body {
  font-size: 120%;
  background: #F8F8FF;
}

.header {
  width: 30%;
  margin: 50px auto 0px;
  color: white;
  background: #5F9EA0;
  text-align: center;
  border: 1px solid #B0C4DE;
  border-bottom: none;
  border-radius: 10px 10px 0px 0px;
  padding: 20px;
}
form, .content {
  width: 30%;
  margin: 0px auto;
  padding: 20px;
  border: 1px solid #B0C4DE;
  background: white;
  border-radius: 0px 0px 10px 10px;
}
.input-group {
  margin: 10px 0px 10px 0px;
}
.input-group label {
  display: block;
  text-align: left;
  margin: 3px;
}
.input-group input {
  height: 30px;
  width: 93%;
  padding: 5px 10px;
  font-size: 16px;
  border-radius: 5px;
  border: 1px solid gray;
}
.btn {
  padding: 10px;
  font-size: 15px;
  color: white;
  background: #5F9EA0;
  border: none;
  border-radius: 5px;
}
.error {
  width: 92%; 
  margin: 0px auto; 
  padding: 10px; 
  border: 1px solid #a94442; 
  color: #a94442; 
  background: #f2dede; 
  border-radius: 5px; 
  text-align: left;
}
.success {
  color: #3c763d; 
  background: #dff0d8; 
  border: 1px solid #3c763d;
  margin-bottom: 20px;
}

 

حالا اگر صفحه را ریفرش بزنید فرم کمی استایل میگیرد و زیباتر به نظر میرسد . 

 

خب حالا وقت آن رسیده است داده های ثبت نامی را دریافت کنیم و آنها را در پایگاه داده MYSQL خودمان ذخیره کنیم همانطور که قبلا گفتیم دریافت اطلاعات فرم ثبت نامی را درون فایل server.php انجام خواهیم داد . 

 

فایل server.php را باز کنید و کدهای زیر را درون آن کپی کنید : 

 

<?php
session_start();

// initializing variables
$username = "";
$email    = "";
$errors = array(); 

// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'registration');

// REGISTER USER
if (isset($_POST['reg_user'])) {
  // receive all input values from the form
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $email = mysqli_real_escape_string($db, $_POST['email']);
  $password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
  $password_2 = mysqli_real_escape_string($db, $_POST['password_2']);

  // form validation: ensure that the form is correctly filled ...
  // by adding (array_push()) corresponding error unto $errors array
  if (empty($username)) { array_push($errors, "Username is required"); }
  if (empty($email)) { array_push($errors, "Email is required"); }
  if (empty($password_1)) { array_push($errors, "Password is required"); }
  if ($password_1 != $password_2) {
	array_push($errors, "The two passwords do not match");
  }

  // first check the database to make sure 
  // a user does not already exist with the same username and/or email
  $user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
  $result = mysqli_query($db, $user_check_query);
  $user = mysqli_fetch_assoc($result);
  
  if ($user) { // if user exists
    if ($user['username'] === $username) {
      array_push($errors, "Username already exists");
    }

    if ($user['email'] === $email) {
      array_push($errors, "email already exists");
    }
  }

  // Finally, register user if there are no errors in the form
  if (count($errors) == 0) {
  	$password = md5($password_1);//encrypt the password before saving in the database

  	$query = "INSERT INTO users (username, email, password) 
  			  VALUES('$username', '$email', '$password')";
  	mysqli_query($db, $query);
  	$_SESSION['username'] = $username;
  	$_SESSION['success'] = "You are now logged in";
  	header('location: index.php');
  }
}

// ... 

 

خب ما از Session های php استفاده میکنیم تا متوجه شویم که کاربر عمل لاگین یا ورود را انجام داده است یا نه ! خب به همین خاطر session_start() را نوشتیم . 

کامنت های موجود در کدهای بالا همه چیز را مشخص میکند ولی خب چند نکته ی دیگه هم اینجا باید بدانید 

ما از طریق یک شرط بررسی میکنیم که آیا دکمه ی reg_user  در فرم ثبت نام کلیک شده است یا نه . 

به همین خاطر در فرم خودمان برای دکمه ی ثبت نام خاصیت name تعریف کردیم و مقدار انرا reg_user  قرار دادیم تا قابلیت شناسایی داشته باشد . 

تمام داده های کاربر دریافت میشود و بررسی میشود تا صحت آنها ارزیابی شود . همچنین فیلد پسورها بررسی میشود تا یکسان باشند ( منظور رمز و تکرار رمز است که باید یکسان باشند )

اگر هیچ خطایی رخ ندهد . داده ها درون جدول users در پایگاه داده ذخیره میشود البته پسورد همینطوری ذخیره نمیشود و برای امنیت بیشتر مقدار آن هش یا رمزگذاری میشود . این کار را به این خاطر انجام میدهیم تا اگر حتی هکر به پایگاه داده دسترسی داشت ، پسورد واقعی دستش نرسد ! 

خب حالا اگر خطایی وجود داشته باشد هیچ چیز نمایش داده نخواهد شد چون errors.php  ما خالی است ! برای اینکه خطاها را نمایش دهیم کدهای زیر را کپی و درون فایل errors.php پیست کنید : 

<?php  if (count($errors) > 0) : ?>
  <div class="error">
  	<?php foreach ($errors as $error) : ?>
  	  <p><?php echo $error ?></p>
  	<?php endforeach ?>
  </div>
<?php  endif ?>

 

خب وقتی ثبت نام یک کاربر با موفقیت انجام میگیرد بصورت خودکار عمل لاگین یا ورود هم برای او انجام میگیرد و به صفحه ی index.php ریدایرکت میشود . 

 

خب تا اینجای کار ، ما ثبت نام یک کاربر را بصورت روان با php و mysql انجام دادیم و به همین سادگی تمام شد . حالا بریم سراغ ورود یا لاگین : 

 

ورود کاربر توسط php : 

 

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

 

ورود کاربران راحت تر از پیاده سازی ثبت نام آنهاست کدهای زیر را درون فایل login.php کپی کنید : 

 

<?php include('server.php') ?>
<!DOCTYPE html>
<html>
<head>
  <title>Registration system PHP and MySQL</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <div class="header">
  	<h2>Login</h2>
  </div>
	 
  <form method="post" action="login.php">
  	<?php include('errors.php'); ?>
  	<div class="input-group">
  		<label>Username</label>
  		<input type="text" name="username" >
  	</div>
  	<div class="input-group">
  		<label>Password</label>
  		<input type="password" name="password">
  	</div>
  	<div class="input-group">
  		<button type="submit" class="btn" name="login_user">Login</button>
  	</div>
  	<p>
  		Not yet a member? <a href="register.php">Sign up</a>
  	</p>
  </form>
</body>
</html>

 

همانطور که عمل ثبت نام کاربر را درون فایل server.php انجام دادیم ما قصد داریم کدهای عمل ورود را هم درون این فایل بنویسیم 

فایل server.php را باز کنید و کدهای زیر را به انتهای آن اضافه کنید : 

نکته : کدهای قبلی را پاک نکنید فقط کدهای زیر را به انتهای آن کپی کنید و ذخیره کنید 

 

// ... 

// LOGIN USER
if (isset($_POST['login_user'])) {
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $password = mysqli_real_escape_string($db, $_POST['password']);

  if (empty($username)) {
  	array_push($errors, "Username is required");
  }
  if (empty($password)) {
  	array_push($errors, "Password is required");
  }

  if (count($errors) == 0) {
  	$password = md5($password);
  	$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
  	$results = mysqli_query($db, $query);
  	if (mysqli_num_rows($results) == 1) {
  	  $_SESSION['username'] = $username;
  	  $_SESSION['success'] = "You are now logged in";
  	  header('location: index.php');
  	}else {
  		array_push($errors, "Wrong username/password combination");
  	}
  }
}

?>

 

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

 

خب حالا نوبت این رسیده ببینیم داخل صفحه ی index.php چه چیزی رخ میدهد . فایل index.php را باز کنید و کدهای زیر را درونش کپی کنید : 

<?php 
  session_start(); 

  if (!isset($_SESSION['username'])) {
  	$_SESSION['msg'] = "You must log in first";
  	header('location: login.php');
  }
  if (isset($_GET['logout'])) {
  	session_destroy();
  	unset($_SESSION['username']);
  	header("location: login.php");
  }
?>
<!DOCTYPE html>
<html>
<head>
	<title>Home</title>
	<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div class="header">
	<h2>Home Page</h2>
</div>
<div class="content">
  	<!-- notification message -->
  	<?php if (isset($_SESSION['success'])) : ?>
      <div class="error success" >
      	<h3>
          <?php 
          	echo $_SESSION['success']; 
          	unset($_SESSION['success']);
          ?>
      	</h3>
      </div>
  	<?php endif ?>

    <!-- logged in user information -->
    <?php  if (isset($_SESSION['username'])) : ?>
    	<p>Welcome <strong><?php echo $_SESSION['username']; ?></strong></p>
    	<p> <a href="index.php?logout='1'" style="color: red;">logout</a> </p>
    <?php endif ?>
</div>
		
</body>
</html>

 

شرط اول بررسی میکند تا ببیند کاربر آیا قبلا وارد شده است یا نه ، اگر وارد نشده باشد به صفحه ی login هدایت میشود . این شرط را به این دلیل گذاشتیم که این صفحه یا بخش فقط برای کاربرانی قابل دسترسی باشد که عمل ورود را انجام داده باشند  اگر دوست دارید با php کاری کنید بخشی از سایت شما فقط برای اعضا نمایش داده شود اساس کار همین است . 

شرط دوم بررسی میکند تا ببیند کاربر وارد شده آیا روی دکمه ی logout یا خروج کلیک کرده است یا نه ؟ اگر کلیک کرده باشد عمل خروج را انجام میدهد و کاربر را به صفحه ی login هدایت میکند . 

 

و به همین سادگی شما سیستم ثبت نام و ورود را نوشتید تبریک میگوئیم . 

 

 

سورس کد کامل این دوره را میتوانید از اینجا دانلود کنید : 

 

تمام 

 


مطالب زیر ممکن است برای شما مفید باشد

 composer چیست و چه کاربردی داره ؟ جانگو یا لاراول ؟ برنامه نویسان وب بخوانند کدایگنایتر یا لاراول ؟ کدام فریمورک پی اچ پی تماس با ما مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHP

محصولات برگزیده مناسب شما

 دوره پروژه محور ساخت فروشگاه بامیلو با لاراول دوره ی آموزش کامل زبان پی اچ پی ( PHP ) دوره ی آموزش ساخت فریمورک برای پی اچ پی با PHP MVC دوره ی پروژه محور ساخت هتلداری با php mvc

پایان 👍

  • نفس کریمی زاده

فریمورک های زبان php

چرا برای برنامه نویسی PHP باید یکی از فریمورک های آنرا انتخاب کرد ؟ 

 

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

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

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

 

چه زمانی باید از فریمورک استفاده کرد ؟ 

 

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

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

این نکته را بخاطر داشته باشید فرقی ندارد کدام زبان برنامه نویسی و کدام فریمورک را میخواهید یاد بگیرید مهم این است ابتدا خود زبان برنامه نویسی را بصورت خام یاد بگیرید سپس یکی از فریمورک های آنرا . 

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

  • سازماندهی کدها و ساختار فایل ها بسیار آسانتر میشود 
  • ابزارها و کتابخانه های آماده مفیدی میتوانند به برنامه نویس کمک کنند مثل : 
    • اعتبار سنجی فرم ها 
    • ابزارهای کار با پایگاه داده
    • ابزارهای فیلتر ورودی و خروجی ها 
    • ابزارهای مدیریت Session ها و Cookie ها
    • ابزارهای ارسال ایمیل ، تقویم ، دسته بندی و صفحه بندی و ... 
  • استفاده از الگوی طراحی Mvc یا model view controller
  • کدنویسی کمتر که در نهایت باعث افزایش سرعت توسعه میشود 
  • افزایش امنیت 
  • ایجاد بستر برای توسعه گروهی
  • فریمورکهای Php انجمن ها و بخش های آموزشی زیادی دارند که به راحتی میتوانید مشکلات خود را حل کنید 

پس انتخاب یک فریمورک برای توسعه ی یک وب سایت با ویژگی های سریع ، ایمن و پرکاربرد الزامی است اما سوال این است 

 

کدام فریمورک PHP را باید انتخاب کرد ؟ 

 

ابتدا چند فریمورک معروف Php را معرفی میکنیم و سپس به مقایسه آنها میپردازیم و در نهایت انتخاب با شماست که کدام فریمورک را برای خود مناسب ببینید 

 

معرفی فریمورک های معروف Php 

 

فریمورک Zend Framework

 

یکی از فریمورک های اپن سورس php است که قابل نصب بر روی سرورهایی است که  php نسخه ی ۵,۶ و بالاتر را دارد.

۱۰۰% شی گرا میباشد . 

zend از Composer بعنوان مدیر وابستگی ها ، از PHPUnit بعنوان آزمایش کننده پکیج ها و از Travis CI  برای ادغام پیوسته استفاده میکند . 

همچنین فریمورک zend استانداردهای  PHP-FIG  را دنبال میکند و از PSR-۷  نیز پشتیبانی میکند . 

حداقل نسخه php مورد نیاز : ۵,۶

مزایای فریمورک zend : 

  • ایده آل برای پروژه های بزرگ و سازمانی
  • شی گرا
  • کامپوننت های زیاد موجود برای اعتبار سنجی ، فید و فرم و ...

معایب فریمورک zend :

  • سختی یادگیری برای مبتدی ها
  • نامناسب برای توسعه ی سریع 
  •  

فریمورک Symfony 


symfony یکی از فریمورک های اپن سورس و رایگان Php است که در سال ۲۰۰۵ میلادی تحت لایسنس MIT Open Source license بوجود آمد . 

این فریمورک از الگوی معماری mvc یا model view controller برای دسته بندی کدها بهره میگیرد . این چارچوب بطور پیش‌فرض از موتور قالب توئیگ (به انگلیسی: twig) پشتیبانی می‌کند و همچنین نگاشت رابطه‌ای اشیا (به انگلیسی: ORM) آن داکترین (به انگلیسی: Doctrine) می‌باشد.

در ساخت ، سیستم مدیریت محتوای drupal و eZ publish ، انجمن ساز phpBB و فریمورک Laravel از فریمورک symfony استفاده شده است . 

حداقل نسخه php مورد نیاز : ۵,۵.۹

مزایای فریمورک symfony : 

  • عملکرد بالا و توجه به سیستم کَش از نوع byte code
  • پایداری بالا
  • مستندات ، نگهداری خوب
  • پشتیبانی عالی

معایب فریمورک symfony :

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

فریمورک Cake PHP 

 

Cake PHP یکی از فریمورک های اپن سورس و رایگان Php میباشد که از الگوی طراحی mvc و شی گرایی پشتیبانی می کند . 

حداقل نسخه php مورد نیاز : ۵,۵.۹

مزایای فریمورک Cake PHP : 

  • یک فریمورک مدرن است ، PHP نسخه 5.5 به بالا پشتیبانی میکند 
  • مناسب برای وب سایت های تجاری ( لایسنس MIT )
  • مدیریت پایگاه داده ، سیستم کَش ، اعتبار سنجی ، احراز هویت 
  • جلوگیری از حملات امنیتی مثل xss و sql injection 
  • اعتبار سنجی فرم ها و سیستم CSRF
  • مستندات خوب

معایب فریمورک Cake PHP :

  • برای ایجاد وب سرویس Restful API به اندازه ی دیگر فریمورک ها توانمند نیست 

 

فریمورک CodeIgniter

 

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

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

حداقل نسخه php مورد نیاز : ۵,۴

مزایای فریمورک Codeigniter : 

  • رابطه ی خوبی با برنامه نویس دارد چرا که وابستگی خاص یا پشتیبانی های خاصی را نیاز ندارد 
  • قابل نصب روی هاست های معمولی به راحتی و کار با پایگاه داده های مختلفی همچون Mysql 
  • مستندات راحت و روان و پشتیبانی خوب
  • مناسب برای افراد مبتدی 
  • وجود سیستم routing 
  • دارای سیستم کَش

معایب فریمورک Codeigniter :

  • عدم توسعه سریع کتابخانه ها و اجزای کمک کننده برای این فریمورک 
  • عدم وجود سیستم routing سریع و آسان مثل Laravel
  •  

فریمورک Laravel 

 

لاراول بعنوان محبوب ترین فریمورک مورد استفاده از سال ۲۰۱۵ به بعد میباشد و دلیل این اتفاق وجود ابزارهای زیادی و رشد سریع این فریمورک بوده است .

لاراول کاملا شی گراست و از الگوی طراحی mvc برای توسعه خود استفاده کرده است ( هر چند در ابتدا ممکن است ساختار laravel گنگ باشد ) . 

این فریمورک ابزارها و ویژگی های بسیاری زیادی دارد که به برنامه نویسی یا توسعه دهنده ی وب کمک میکند در مدت زمان بسیار کم کارهای بیشتری انجام دهد . 

حداقل نسخه php مورد نیاز : ۵,۵.۹

مزایای فریمورک Laravel : 

  • سیستم کَش قوی 
  • دارای سیستم مدیریت جداول پایگاه داده بنام migration 
  • دارای سیستم خط فرمان php artisan 
  • دارای موتور قالب سازی به نام blade
  • استفاده از composer برای دسترسی وابستگی 
  • استفاده از laravel mix جهت بهبود وضعیت و لود فایل های css و js با سرعت بالا
  • سیستم routing قوی
  • سیستم ایجاد فیلتر امنیتی به نام middleware 
  • دارای سیستم Auth یا احراز هویت کاربر بصورت آماده 
  • مستندات خوب

معایب فریمورک Laravel : 

  • نیازمندی های سروری بالا ( عدم نصب روی هاست های اشتراکی به خوبی )
  • اجرای کوئری های بالا در دیتابیس که باعث فشار به سرور و کاهش سرعت سایت میشود
  •  

فریمورک Yii  :

 

Yii یکی از فریمورک های php میباشد که اپن سورس و رایگان است . یکی از بهترین مواردی که در Yii وجود دارد و میتوان به آن اشاره کرد سرعت بارگزاری سایت هایی میباشد که با Yii ساخته شده اند . همچنین Yii سعی میکند با ابزارهایی که در اختیار برنامه نویس قرار میدهد باعث شود کدهای کمتری نوشته شود.

مزایای فریمورک Yii : 

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

معایب فریمورک Yii : 

  • قواعد گنگ برای تازه کارها 
  • عدم وجود مستندات روان و ساده 
  •  

آمارهای جهانی فریمورک های PHP : 

 

آمار جستجوهای گوگل با google Trends :

 

 اگر به سایت  google Trends مراجعه کنید و نام فریمورک ها را در لیست قرار دهید تا نتایج جستجوهای انجام شده از ۵ سال پیش را بررسی کنید Laravel بعنوان فریمورکی که رشد چشم گیری دارد و در این آمار از همه فریمورک های PHP پیشی گرفته است : 

 

آمار استفاده از فریمورک های PHP

 

در سایت های مختلف که آمار منتشر میکنند کافیست سرچ بزنید و اگر در گوگل سرچ کنید best framework for php شما میبینید که اکثرا Laravel در رتبه ی نخست قرار دارد اما دلیل نیست که حتما شما هم Laravel را انتخاب کنید چرا که انتخاب فریمورک به شرایط و کاری که میخواهید انجام دهید بستگی دارد .

 

جمع بندی و انتخاب نهایی : 

 

به احتمال زیاد شما هم به این نتیجه رسیده اید که باید بین Laravel  , Yii , Codeigniter یکی را انتخاب کنید !

هر سه فریمورک نام برده استفاده های زیادی دارند مثلا همین الان که شما این وب سایت را مطالعه میکنید ما از فریمورک Codeigniter بهره گرفته ایم تا این وب سایت را بسازیم 

Codeigniter برای پروژه های شخصی و کوچک که میخواهید سریعا یک وب سایت پیاده کنید مناسب است . 

Laravel برای پروژه های متوسط به بالا که بصورت گروهی توسعه داده میشود کاربرد دارد . 

و Yii هم یک فریمورک خوب است که میتوانید یاد بگیرید و شروع کنید . 

در کل بحث خوب و بد بودن بصورت ذاتی مطرح نیست و براساس شرایط ، راحتی ، نیازمندی ها شما باید یک فریمورک را انتخاب کنید . 

پیشنهاد میکنیم برای هر یک از فریمورک های نام برده مدتی را اختصاص دهید و کمی از مستندات و آموزش های ویدئویی آنها را ببینید و بعد میتوانید به راحتی تصمیم بگیرید 

البته مقاله ی بالا ، بعنوان یک منبع روان و خوب برای شما تهیه شده است اگر با دقت نخواندید برگردید و دوباره مطالعه کنید 

 

 


مطالب زیر ممکن است برای شما مفید باشد

 کدایگنایتر یا لاراول ؟ کدام فریمورک پی اچ پی در نسخه ی 6 لاراول چه چیزی اضافه شده است ؟‌ رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ

محصولات برگزیده مناسب شما

 دوره ی آموزش ساخت فریمورک برای پی اچ پی با PHP MVC کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین

پایان 👍

  • نفس کریمی زاده

تمامی مطالب مفید برنامه نویسی که پیدا میکنم میزارم اینجا