تشابهه زیاد php و جاوا در syntax و کلمات کلیدی

از نظر سینتکس (Syntax)، PHP و Java تفاوت‌های زیادی دارند، اگرچه برخی اصول پایه در هر دو زبان مشترک هستند. در اینجا مقایسه‌ای از سینتکس این دو زبان ارائه می‌دهیم: این مقاله بیشتر برای افرادی مناسب است که تمایل دارند زبان دیگری را هم بجز PHP یاد بگیرند و با توجه به بررسی که من بین C# و Java داشتم به دلیل تجربه ای که در برنامه نویسی PHP داشتم بخشی از تشابهه های بین PHP و جاوا را معرفی میکنم

1. تعریف متغیرها:

$name = "John";
$age = 25;

Java: در Java، برای تعریف متغیرها باید نوع داده (Type) مشخص شود.

String name = "John";
int age = 25;

2. تعریف تابع (Function/Method):

PHP: توابع با کلمه‌کلیدی function تعریف می‌شوند.

function greet($name) {
    return "Hello, " . $name;
}

Java: متدها در Java باید داخل یک کلاس قرار گیرند و نوع بازگشتی نیز باید مشخص شود.

public String greet(String name) {
    return "Hello, " + name;
}

3. کلاس‌ها و اشیاء:

  • PHP: PHP از کلاس‌ها و اشیاء پشتیبانی می‌کند. کلمه‌کلیدی class برای تعریف کلاس‌ها استفاده می‌شود.
class Person {
    public $name;
    public $age;
    
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person = new Person("John", 25);

Java: Java نیز از کلاس‌ها و اشیاء پشتیبانی می‌کند و همه چیز باید داخل یک کلاس قرار گیرد.

class Person {
    String name;
    int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Person person = new Person("John", 25);

4. ساختار شرطی (if/else):

  • PHP
if ($age > 18) {
    echo "Adult";
} else {
    echo "Minor";
}

Java:

if (age > 18) {
    System.out.println("Adult");
} else {
    System.out.println("Minor");
}

5. حلقه‌ها (Loops):

PHP:

for ($i = 0; $i < 5; $i++) {
    echo $i;
}

foreach ($array as $item) {
    echo $item;
}

Java:

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

for (String item : array) {
    System.out.println(item);
}

6. تعریف آرایه‌ها (Arrays):

  • PHP:
$array = [1, 2, 3, 4, 5];
echo $array[0];  // خروجی: 1

Java:

int[] array = {1, 2, 3, 4, 5};
System.out.println(array[0]);  // خروجی: 1

7. مدیریت خطا (Error Handling):

  • PHP: برای مدیریت خطا از try/catch استفاده می‌شود.
try {
    throw new Exception("An error occurred");
} catch (Exception $e) {
    echo $e->getMessage();
}

Java: Java برای مدیریت خطا از try/catch مشابه استفاده می‌کند، اما باید انواع مختلف خطا (Exception) را مشخص کنید.

try {
    throw new Exception("An error occurred");
} catch (Exception e) {
    System.out.println(e.getMessage());
}

8. وراثت (Inheritance):

PHP: در PHP از کلمه‌کلیدی extends برای وراثت استفاده می‌شود.

class Animal {
    public $name;
    
    public function speak() {
        echo "Animal sound";
    }
}

class Dog extends Animal {
    public function speak() {
        echo "Bark";
    }
}

$dog = new Dog();
$dog->speak();  // خروجی: Bark

Java: در Java نیز از کلمه‌کلیدی extends برای وراثت استفاده می‌شود.

class Animal {
    String name;
    
    public void speak() {
        System.out.println("Animal sound");
    }
}

class Dog extends Animal {
    @Override
    public void speak() {
        System.out.println("Bark");
    }
}

Dog dog = new Dog();
dog.speak();  // خروجی: Bark

9. کتابخانه‌ها (Libraries/Packages):

PHP: در PHP برای وارد کردن کتابخانه‌ها از require یا include استفاده می‌شود.

require 'library.php';

Java: در Java از import برای وارد کردن کلاس‌ها و بسته‌ها (packages) استفاده می‌شود.

import java.util.ArrayList;

نصب لاراول در ویندوز – لینوکس – مک

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

/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"

نصب در لینوکس یا ubuntu

بعد از اجرای دستور فوق به سادگی php , composer و laravel installer نصب میگردد.

دستور نصب در ویندوز

Run as administrator…
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/install/windows/8.4'))

نصب در mac

/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"

در نهایت پس از بازکردن پنجره جدید ترمینال متوجه نصب شدن php خواهید شد

مرحله آخر اجرای دستور

composer global require laravel/installer

و برای شروع یک پروژه جدید

laravel new example-app

نحوه ایجاد استرس تست و benchmark از پروژه

یکی از بهترین ابزارها https://github.com/wg/wrk است که با دستور هایی میتواند به صورت همزمان میزان پاسخگویی به کاربران همزمان اپلکیشن شما را انجام دهد

لازم است که حتما در local این تست را بر اساس سخت افزاری که دارید انجام دهید

sudo apt-get install build-essential libssl-dev git -y 
git clone --depth 1 https://github.com/wg/wrk.git wrk
cd wrk 
sudo make 
# move the executable to somewhere in your PATH, ex: 
sudo cp wrk /usr/local/bin 

به طور مثال ۳۰ ثانیه در ۱۲ نخ و ۴۰۰ اتصال همزان با دستور زیر از ادرس زیر به اینصورت است

wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html

در واقع در تست زیر هرچه میزان درخواست بر ثانیه بیشتر باشد بهتر است

php extention for php

ماژول های مورد نیاز جهت نصب در لاراول و Ubuntu

نصب نسخه اصلی

 

sudo apt install openssl php-common php-curl php-json php-mbstring php-mysql php-xml php-zip php-sqlite3


نصب فقط برای php 7.4

sudo apt install openssl php7.4-common php7.4-curl php7.4-json php7.4-mbstring php7.4-mysql php7.4-xml php7.4-zip php7.4-sqlite3

وارد کردن CSV فارسی در PHP

کافی است که دیتا را به صورت کاملا عادی در Excel وارد کنید ، و ذخیره نمایید.

بعد از ابزار Google Stylesheet استفاده کنید ، باید در اکانت گوگل خود لاگین کنید و با رفتن به منو File و open فایل excel  خود را upload کنید منتظر بمانید تا باز شود بعد مطابق تصویر زیر عمل کنید

روی download as – Comma-separated values  کلیک کنید.

حالا میتوانید محتوایات فارسی CSV را با PHP به آرایه تبدیل کنید.

$handle = fopen($csvFile, ‘r’);

$handle = fopen($csvFile, ‘r’);

while (!feof($handle) ) { $line_of_text[] = fgetcsv($handle, 1024); }
fclose($handle);

return $line_of_text;