"در لاراول متود دیگه هم هست تحت عنوان ()inRandomOrder و خب این متود در شرایطی کاربرد داره که نیاز داشته باشیم نتایج query بصورته رندوم مرتب شه واسمون.✔️"
استفاده ازش هم کاره ساده ایه، در منبع و تصویره مربوطه به چگونگیه استفاده از این متود با سه مثال ذکر شده🪴🌴
@GoldenCodeir
https://x.com/OussamaMater/status/1761431101799600188?t=Q8xGY8UAoMhJWt5SAhbULw&s=35
استفاده ازش هم کاره ساده ایه، در منبع و تصویره مربوطه به چگونگیه استفاده از این متود با سه مثال ذکر شده🪴🌴
@GoldenCodeir
https://x.com/OussamaMater/status/1761431101799600188?t=Q8xGY8UAoMhJWt5SAhbULw&s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Randomly Order Query Results
Did you know that Laravel comes with the "inRandomOrder" method, which sorts query results randomly? 🚀
#laravel #php
Did you know that Laravel comes with the "inRandomOrder" method, which sorts query results randomly? 🚀
#laravel #php
👍6💯2❤1
در لاراول متود دیگه ای هم هستش تحت عنوان ()saveMany که خب این امکان رو بهمون میده تا بتونیم چندین مدل مرتبط رو بطور همزمان ذخیره کنیم🌴🪴
@GoldenCodeir
همونطور که در مثالِ منبع مشاهده میکنین بصورت آرایه ای درخواست ارسال شده✔️👇🏾
https://x.com/OussamaMater/status/1763164790921335018?t=hlQCmCa8MDvBiAMOzzVHaQ&s=35
@GoldenCodeir
همونطور که در مثالِ منبع مشاهده میکنین بصورت آرایه ای درخواست ارسال شده✔️👇🏾
https://x.com/OussamaMater/status/1763164790921335018?t=hlQCmCa8MDvBiAMOzzVHaQ&s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Save Multiple Related Models
Did you know that Laravel allows you to save multiple related models at once by using the "saveMany" method? 🚀
#laravel #php
Did you know that Laravel allows you to save multiple related models at once by using the "saveMany" method? 🚀
#laravel #php
👍6❤1
در لاراول میتونیم به فیلد هایی که فرمت json هستن هم کوئری بزنیم...✔️
چجوری؟
به مثال سوم در تصویرِ منبع نگاه کنین:
خواسته شده تا همه ی کاربرانی رو که در آرایه ی languages بیش از یک آیتم دارن رو بره و بیاره، با چه متودی؟ ()whereJsonLength 🟩
یا در مثال دوم:
همه ی کاربرانی که آرایه ی languages براشون دارای en و de هست رو برامون بیار،
متود: ()whereJsonContains🟩
@GoldenCodeir
(مثال بیشتر و سایر نکاتُ متود ها در منبع:👇🏾)
https://x.com/OussamaMater/status/1763557742273290670?t=5_H-7BcfmcaXXCe8R-7c_A&s=35
چجوری؟
به مثال سوم در تصویرِ منبع نگاه کنین:
خواسته شده تا همه ی کاربرانی رو که در آرایه ی languages بیش از یک آیتم دارن رو بره و بیاره، با چه متودی؟ ()whereJsonLength 🟩
یا در مثال دوم:
همه ی کاربرانی که آرایه ی languages براشون دارای en و de هست رو برامون بیار،
متود: ()whereJsonContains🟩
@GoldenCodeir
(مثال بیشتر و سایر نکاتُ متود ها در منبع:👇🏾)
https://x.com/OussamaMater/status/1763557742273290670?t=5_H-7BcfmcaXXCe8R-7c_A&s=35
👍4❤3💯3
"میتونیم resources controller هامونو با استفاده از متودی به نام ()resources گروه بندیشون کنیم(بصورت گروهی ایجاد کنیم).
طبیعتن در clean code تاثیره خودشو میزاره🌴🪴"
(در نظر داشته باشین که متود resource بصورته آرایه route رو تحویل میگیره )
@GoldenCodeir
📌به منبع و تصویرش توجه کنین تا تفاوت استفاده از این متود و عدم استفاده ازش رو بهتر حس کنین:)👇🏾
https://x.com/OussamaMater/status/1765047738423501309?s=09
طبیعتن در clean code تاثیره خودشو میزاره🌴🪴"
(در نظر داشته باشین که متود resource بصورته آرایه route رو تحویل میگیره )
@GoldenCodeir
📌به منبع و تصویرش توجه کنین تا تفاوت استفاده از این متود و عدم استفاده ازش رو بهتر حس کنین:)👇🏾
https://x.com/OussamaMater/status/1765047738423501309?s=09
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: Group Resource Controllers
Did you know that you can group resource controllers using the "resources()" method? It makes routing even cleaner! 🚀
#laravel #php
Did you know that you can group resource controllers using the "resources()" method? It makes routing even cleaner! 🚀
#laravel #php
❤4👍1🔥1
از عبارت match میتونیم برای پیاده سازیه منطق های شرطیه تمیز تر بهره ببریم.
در مثال زیر، اگه مقدار status$ با هیچکدوم از الگو هایی که داریم مطابقت نداشته باشه همون حالت دیفالت اجرا خواهد شد .
این عبارت از نسخه ۸ php در دسترسه.🪴🌴
@GoldenCodeir
(پیچیدگیه خاصی هم نداره،به منبع و مثالش توجه کنین👇🏾)
https://x.com/laravelbackpack/status/1777660236398244260?t=LpLUOgmUyjt-sY58J0d3cw&s=35
در مثال زیر، اگه مقدار status$ با هیچکدوم از الگو هایی که داریم مطابقت نداشته باشه همون حالت دیفالت اجرا خواهد شد .
این عبارت از نسخه ۸ php در دسترسه.🪴🌴
@GoldenCodeir
(پیچیدگیه خاصی هم نداره،به منبع و مثالش توجه کنین👇🏾)
https://x.com/laravelbackpack/status/1777660236398244260?t=LpLUOgmUyjt-sY58J0d3cw&s=35
X (formerly Twitter)
Backpack for Laravel (@laravelbackpack) on X
#PHP Tip
Embrace PHP 8's match expression for cleaner conditional logic. 🧹
Embrace PHP 8's match expression for cleaner conditional logic. 🧹
👍7🔥2
Forwarded from Pishro App
بصورت کلی Property webhook به برنامهنویسان این امکان رو میده تا رفتار پیشفرض دسترسی به properties و تغییر آنها را با استفاده از توابع "get" و "set" تغییر دهند. این قابلیت از زبانهایی مانند Kotlin، C# و Swift الهام گرفته شده است.
Property Hooks دو نوع "hook" برای دسترسی و تغییر مقدار properties فراهم میکند:
get:
این hook برای تعیین منطق دلخواه هنگام خواندن مقدار property استفاده میشود. به عنوان مثال، میتوانید property را قبل از برگرداندن مقدار آن تغییر دهید.
set:
این hook برای تعیین منطق دلخواه هنگام تنظیم مقدار property استفاده میشود. به عنوان مثال، میتوانید مقادیر را اعتبارسنجی یا تغییر دهید قبل از اینکه به property اختصاص داده شوند.
class User {
public string $fullName {
get => $this->first . " " . $this->last;
set {
[$this->first, $this->last] = explode(' ', $value, 2);
}
}
public function __construct(public string $first, public string $last) {}
}
$user = new User('John', 'Doe');
echo $user->fullName; // John Doe
$user->fullName = 'Jane Smith';
echo $user->first; // Janeکاهش کدهای تکراری: نیازی به تعریف متدهای getter و setter برای هر property نیست.
انعطافپذیری بیشتر: امکان تعریف منطق دلخواه برای دسترسی و تغییر properties.
کد خواناتر: خوانایی و نگهداری کدها بهتر میشود.
ویژگی Property Hooks قابلیتهای متعددی برای بهبود و سادهسازی دسترسی به properties فراهم میکنند و از این جهت یک ابزار قدرتمند برای توسعهدهندگان PHP خواهند بود.
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🤮1
Forwarded from Pishro App
نسخه 8.4 php قراره 21 نوامبر ۲۰۲۴ بطور رسمی منتشر بشه
نسخه Alpha 1 از php 8.4 رو از اینجا میتونید ببینید و برای تست دانلود کنید
https://www.php.net/archive/2024.php#2024-07-05-1
#php
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from CleverDevs (Mammad)
توی این پست میخوام یه فیچر باحال لاراول به اسم macro رو معرفی کنم
ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید
در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده
حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید
برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :
حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :
برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید
https://ditty.ir/posts/laravel-macro/J6dqn
#Laravel #php
@CleverDevs - @CleverDevsGp
ممکنه بخواید برای یکی از کلاس های خود لاراول متدی اضافه کنید طبیعتا رفتن و اضافه کردنشش به سورس کد خود لاراول کار منطقی ای نیست تو این موقعیت میتونید از macro ها استفاده کنید
در واقع کلاس های لاراول یه متد macro دارن که دوتا آرگیومنت میگیره اولی اسم متدی که میخوایم اضافه کنیم و دومی یه تابع که بدنه متد رو تشکیل میده
حالا چطور ماکرو هارو تعریف کنیم و ازشون استفاده کنیم ؟ برای اینکار میتونید ماکرو رو توی بوت AppServiceProvider تعریف کنید یا نه برای اینکه پروژتون تمیز تر باشه یه پروایدر مخصوص برای ماکرو ها بسازید
برای مثال ما میخوایم یه متد even برای کلاس Collection بسازیم تا بیاد اعضای زوج کالکشن رو برگردونه برای اینکار توی متود boot میاییم و ماکرو رو به این صورت تعریف میکنیم :
use Illuminate\Support\Collection;
public function boot()
{
Collection::macro('even', function () {
return $this->filter(function ($value) {
return $value % 2 === 0;
});
});
}
حالا هرجا بخوایم میتویم کلاس Collection رو use کنیم و از متد even استفاده کنیم :
php
$numbers = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
$evenNumbers = $numbers->even();
// $evenNumbers will now contain [2, 4, 6, 8, 10]
برای درک بهتر میتونید این مقاله از دیتی رو هم بخونید
https://ditty.ir/posts/laravel-macro/J6dqn
#Laravel #php
@CleverDevs - @CleverDevsGp
🔥5👍3🤔1
در لاراول متود is برای مقایسه دو مدل استفاده میشه. این متود بررسی میکنه که آیا دو شی مدل دارای همون ID و از همون جدول در دیتابیس هستن یا نه.
یعنی با استفاده ازین متود میتونید تشخیص بدید که آیا دو مدل دقیقا یکی هستن یا خیر.
کاربردش؟
مثلا زمانی که میخوایم بررسی کنیم که آیا کاربری که وارد شده، با کاربر خاصی که دسترسی ادمین داره، یکی هست یا نه میتونیم ازین متود استفاده کنیم.
#Laravel
@GoldenCodeir
(در منبع چگونگیه استفادش ذکر شده👇🏾)
https://x.com/MilwadDev/status/1826975907027849647?t=zrwzckb_Q5-nwjYITz0doA&s=35
یعنی با استفاده ازین متود میتونید تشخیص بدید که آیا دو مدل دقیقا یکی هستن یا خیر.
کاربردش؟
مثلا زمانی که میخوایم بررسی کنیم که آیا کاربری که وارد شده، با کاربر خاصی که دسترسی ادمین داره، یکی هست یا نه میتونیم ازین متود استفاده کنیم.
#Laravel
@GoldenCodeir
(در منبع چگونگیه استفادش ذکر شده👇🏾)
https://x.com/MilwadDev/status/1826975907027849647?t=zrwzckb_Q5-nwjYITz0doA&s=35
X (formerly Twitter)
Milwad Khosravi ⚡️ (@MilwadDev) on X
In Laravel, you can use the is method to determine if two models have the same ID and belong to the same table✅
Also, we have the isNot method but I will explain it in separate posts👍
#laravel #php #eloquent #model #milwad
Also, we have the isNot method but I will explain it in separate posts👍
#laravel #php #eloquent #model #milwad
👍4❤1🔥1🤔1
Forwarded from CleverDevs (Mammad)
Named Arguments توی php چیه و چه کاربردی داره ؟
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم
مثلا تابع زیر رو تصور کنید
function createNewUser($name , $city = "Tehran" , $age = "18", $gender = ""){
$user = new User();
$user->name = $name;
$user->city = $city;
$user->age = $age;
$user->gender = $gender;
$user->save();
}یک تابع سادس که میاد یه کاربر اضافه میکنه. تابع برای سه تا از پارامتر هاش مقدار دیفالت داره یعنی اگه پاسش ندیم اون مقدار دیفالت رو در نظر میگیره حالا فک کنید بخوایم یه کاربر اضافه کنیم و میخوایم شهر و سنش همون مقدار دیفالت باشه ولی جنسیتش رو ست کنیم اگه بخوایم پیشفرض و بر اساس ترتیب آرگومان هارو پاس بدیم نیازه که حتما مقدار شهر و سن رو هم توی آرگومان ها پاس بدیم تا بتونیم مقدار جنسیت رو بدیم اما در عوض میتونیم از طریق اسم پارامتر ها آرگومان هارو پاس بدیم مثل کد پایین
createNewUser(name : "Mammad" , gender : "male");
حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد
این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه
اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید
https://stitcher.io/blog/php-8-named-arguments
#php
@CleverDevs - @CleverDevsGp
👏12❤2
وقتی که نیاز داریم چندین کلاس رو از یک namespace وارد کنیم، معمولاً هر کدوم رو با use جداگانه درج میکنیم. اما میشه همهی این کلاس هارو توی یک خط use کنیم!
چجوری؟
مزایاش چیه؟؟
تمیزتر شدن و کمتر شدنه تعداد خطوط.
#PHP
#clean_code
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/laravelbackpack/status/1856313510768324670?t=qOO4OC7jKWvPITFKNSHOtA&s=1
چجوری؟
use Namespace\{ClassA, ClassB, ClassC};مزایاش چیه؟؟
تمیزتر شدن و کمتر شدنه تعداد خطوط.
#PHP
#clean_code
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/laravelbackpack/status/1856313510768324670?t=qOO4OC7jKWvPITFKNSHOtA&s=1
X (formerly Twitter)
Backpack for Laravel (@laravelbackpack) on X
#Laravel and #PHP Tip
Did you know… you can import multiple classes from a single namespace like this👇
Way cleaner, right? 😁
Did you know… you can import multiple classes from a single namespace like this👇
Way cleaner, right? 😁
❤7👍7🏆1
وقتی از دستور "%LIKE "%fo برای جستجو استفاده میکنیم، درین شرایط دیتابیس باید تمام اطلاعات رو برامون بررسی کنه که خب باعث میشه سرعت پایین بیاد. راه بهتر برای جستجوی سریعتر استفاده از full-text هستش.
این روش کمک میکنه تا دیتابیس خیلی سریعتر و کارآمدتر فرایند جستجو رو انجام بده.
(طریقه استفادش در تصویر درج شده)
#SQL
#PHP
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1902014134561947783?t=jHjPbh6DAmevpRPeQSCDWg&s=35
این روش کمک میکنه تا دیتابیس خیلی سریعتر و کارآمدتر فرایند جستجو رو انجام بده.
(طریقه استفادش در تصویر درج شده)
#SQL
#PHP
@GoldenCodeir
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1902014134561947783?t=jHjPbh6DAmevpRPeQSCDWg&s=35
X (formerly Twitter)
Martin Joo (@mmartin_joo) on X
LIKE "%foo%" queries can be very slow.
Use full-text index and full-text search instead:
Use full-text index and full-text search instead:
🔥5❤1👏1🤔1
"چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور میکنن Laravel جواب نمیده! ولی واقعیت اینه که اگر از ابزارها و تکنیکهای درست استفاده کنی، Laravel خیلی هم قدرتمنده
✅ استفاده از Queue Jobs
ارسال عملیاتهای سنگین به صف برای پردازش در پسزمینه
✅ بهینهسازی دیتابیس: تعریف Index مناسب
استفاده از Query Builder به جای Eloquent برای کوئریهای سنگین یا حتی اگه می تونین کوئری خام بنویسین معجزه رو می بینید
✅ استفاده از Transaction
برای تضمین atomic بودن عملیاتهای حساس جاهایی که چند کار مرتبط با هم رو می خواین انجام بدین عالیه
✅ استفاده از chunk
بارگذاری و پردازش دادههای بزرگ بهصورت تکهای
✅ ۵. استفاده از Redis یا Kafka
برای صفهای سریع و سبک Redis
برای پروژه های بزرگ و real-time کافکا باور کنید معجزه می کنه
✅ بهینه سازی کد PHP و مصرف حافظه
استفاده از cursor() بهجای بارگذاری کل دیتا
جلوگیری از لوپهای سنگین و غیرضروری
نتیجه؟
اگه این موارد رو به درستی پیاده کنید، Laravel بهراحتی از پس میلیونها ترنزاکشن برمیاد بدون اینکه اپلیکیشنت کرش کنه! "
#Laravel
@GoldenCodeir
(به منبع توجه کنید👇🏾)
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور میکنن Laravel جواب نمیده! ولی واقعیت اینه که اگر از ابزارها و تکنیکهای درست استفاده کنی، Laravel خیلی هم قدرتمنده
✅ استفاده از Queue Jobs
ارسال عملیاتهای سنگین به صف برای پردازش در پسزمینه
✅ بهینهسازی دیتابیس: تعریف Index مناسب
استفاده از Query Builder به جای Eloquent برای کوئریهای سنگین یا حتی اگه می تونین کوئری خام بنویسین معجزه رو می بینید
✅ استفاده از Transaction
برای تضمین atomic بودن عملیاتهای حساس جاهایی که چند کار مرتبط با هم رو می خواین انجام بدین عالیه
✅ استفاده از chunk
بارگذاری و پردازش دادههای بزرگ بهصورت تکهای
✅ ۵. استفاده از Redis یا Kafka
برای صفهای سریع و سبک Redis
برای پروژه های بزرگ و real-time کافکا باور کنید معجزه می کنه
✅ بهینه سازی کد PHP و مصرف حافظه
استفاده از cursor() بهجای بارگذاری کل دیتا
جلوگیری از لوپهای سنگین و غیرضروری
نتیجه؟
اگه این موارد رو به درستی پیاده کنید، Laravel بهراحتی از پس میلیونها ترنزاکشن برمیاد بدون اینکه اپلیکیشنت کرش کنه! "
#Laravel
@GoldenCodeir
(به منبع توجه کنید👇🏾)
https://www.linkedin.com/posts/fererydoon-salemi_laravel-php-backenddevelopment-activity-7327385475915128832-DtQB?utm_source=share&utm_medium=member_android&rcm=ACoAACtoqKYB5Pk8cjIxolPHpdjShKtRL0tcolQ
Linkedin
#laravel #php #backenddevelopment #performance #scalability #queues #databaseoptimization #horizon | Fereydoon Salemi
تو مسیر که داشتم می اومدم یه پست دیدم که تا خواستم جواب بدم صفحه رفرش شد و رفت
دوستی که این سوال رو پرسیده بودی، امیدارم جوابش رو ببینی
چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور…
دوستی که این سوال رو پرسیده بودی، امیدارم جوابش رو ببینی
چطوری تو لاراول از پس پردازشهای سنگین بر بیایم؟
وقتی حجم ترنزاکشنها بالا میره (مثلاً ۱ میلیون رکورد!)، خیلیها تصور…
👍7❤2🔥1👏1
Forwarded from Anophel | آنوفل
در PHP 8.1 و بالاتر، میتوان از Enum ها برای تعریف مجموعهای از ثابتها که با هم مرتبط هستند استفاده کرد. Enum (مخفف Enumeration) یک نوع داده خاص است که شامل مجموعهای از مقادیر ثابت و از پیش تعریفشده است. این مقادیر معمولاً با هم مرتبط هستند و به یک مفهوم خاص اشاره میکنند. به عنوان مثال، میتوان برای وضعیتهای مختلف یک سفارش (مانند "در انتظار"، "در حال پردازش"، "ارسال شده" و غیره) یک Enum تعریف کرد.
کی از Enum استفاده کنیم؟
تعریف مجموعهای از مقادیر ثابت و مرتبط: زمانی که مجموعهای از مقادیر ثابت وجود دارد که با هم مرتبط هستند و نیاز به مدیریت آنها دارید، میتوان از Enum استفاده کرد. مانند وضعیتهای مختلف یک سفارش، روزهای هفته، ماههای سال و غیره.
خوانایی و نگهداری بهتر کد: استفاده از Enum به کد شما خوانایی بیشتری میبخشد و همچنین از خطاهای ناشی از استفاده نادرست از مقادیر جلوگیری میکند.
جلوگیری از استفاده نادرست از مقادیر: وقتی که مقادیر ثابت را به صورت Enum تعریف میکنید، کامپایلر یا مفسر برنامه در برابر استفاده نادرست از این مقادیر به شما هشدار میدهد یا مانع از آن میشود.
کاهش استفاده از "عددهای جادویی": استفاده از Enum به جای اعداد یا رشتههای ثابت پراکنده در کد، باعث میشود که کد تمیزتر و قابل فهمتر باشد.
در اینجا یک مثال از یک Enum برای وضعیتهای یک سفارش در یک سیستم خرید آورده شده است.
ویژگیهای Enum در PHP:
1. تعریف به صورت Enum : Enum ها با استفاده از کلمه کلیدی enum تعریف میشوند.
2. مقادیر ثابت: Enum ها مجموعهای از مقادیر ثابت را تعریف میکنند که با هم مرتبط هستند.
3. پشتیبانی از انواع داده: Enum ها میتوانند انواع دادهای مختلف مثل string یا int را به عنوان مقدار خود داشته باشند.
4. قابلیت استفاده در توابع: Enum ها میتوانند به عنوان پارامتر به توابع و متدها ارسال شوند.
5. سازگاری با Match Expression: از match expression میتوان برای پردازش مقادیر Enum استفاده کرد.
6. تعریف متدها: میتوان متدهایی را در داخل Enum تعریف کرد که به مقادیر آن مرتبط هستند.
من در Anophel آنوفل بیشتر به این موضوع پرداختم لینک مقاله :
لینک مقاله
#لاراول #php
کی از Enum استفاده کنیم؟
تعریف مجموعهای از مقادیر ثابت و مرتبط: زمانی که مجموعهای از مقادیر ثابت وجود دارد که با هم مرتبط هستند و نیاز به مدیریت آنها دارید، میتوان از Enum استفاده کرد. مانند وضعیتهای مختلف یک سفارش، روزهای هفته، ماههای سال و غیره.
خوانایی و نگهداری بهتر کد: استفاده از Enum به کد شما خوانایی بیشتری میبخشد و همچنین از خطاهای ناشی از استفاده نادرست از مقادیر جلوگیری میکند.
جلوگیری از استفاده نادرست از مقادیر: وقتی که مقادیر ثابت را به صورت Enum تعریف میکنید، کامپایلر یا مفسر برنامه در برابر استفاده نادرست از این مقادیر به شما هشدار میدهد یا مانع از آن میشود.
کاهش استفاده از "عددهای جادویی": استفاده از Enum به جای اعداد یا رشتههای ثابت پراکنده در کد، باعث میشود که کد تمیزتر و قابل فهمتر باشد.
در اینجا یک مثال از یک Enum برای وضعیتهای یک سفارش در یک سیستم خرید آورده شده است.
ویژگیهای Enum در PHP:
1. تعریف به صورت Enum : Enum ها با استفاده از کلمه کلیدی enum تعریف میشوند.
2. مقادیر ثابت: Enum ها مجموعهای از مقادیر ثابت را تعریف میکنند که با هم مرتبط هستند.
3. پشتیبانی از انواع داده: Enum ها میتوانند انواع دادهای مختلف مثل string یا int را به عنوان مقدار خود داشته باشند.
4. قابلیت استفاده در توابع: Enum ها میتوانند به عنوان پارامتر به توابع و متدها ارسال شوند.
5. سازگاری با Match Expression: از match expression میتوان برای پردازش مقادیر Enum استفاده کرد.
6. تعریف متدها: میتوان متدهایی را در داخل Enum تعریف کرد که به مقادیر آن مرتبط هستند.
من در Anophel آنوفل بیشتر به این موضوع پرداختم لینک مقاله :
لینک مقاله
#لاراول #php
Anophel
Anophel | Where Developers Create Their Own Path
Anophel is an ecosystem for developers—a place for those who prefer building over consuming. If you want to create tools, think differently, and forge your own path in coding, Anophel is with you.
👍6🔥2❤1
Forwarded from Milwad Khosravi | میلاد خسروی
در اصل JIT مخفف Just-In-Time compilation هست، یعنی کامپایل همزمان با اجرا. این تکنیک باعث میشه که کدهایی که به صورت معمول تفسیر (interpret) میشن (مثل PHP یا JavaScript)، در زمان اجرا به کد ماشین تبدیل بشن، و این یعنی اجراشون خیلی سریعتر بشه.
- سرعت اجرای بهتر
- کاهش مصرف منابع در برخی سناریوها
- عملکرد نزدیکتر به زبانهای کامپایلشده (مثل C)
🧪 کار JIT در PHP چیه؟
در PHP 8 به بعد، Zend Engine دارای یک JIT Compiler شد. قبل از اون، PHP فقط تفسیر میکرد.
کار JIT باعث میشه:
بخشهایی از کد که زیاد استفاده میشن (مثلاً حلقهها یا توابع پرتکرار)، به کد ماشین واقعی تبدیل بشن.
- پردازش تصویر
- بازیسازی
- پروژههای علمی
- کدهایی که زیاد اجرا میشن مثل فریمورکها یا CMSها
#PHP #JIT #Milwad #Tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥2👍1
متود segment() در لاراول به شما این امکان رو میده که بخشهای مختلف مسیر URL رو به راحتی استخراج و بررسی کنید. این متود برای ساخت منطقهای داینامیک بر اساس URL بسیار کاربردیه.
📌 کاربردهای اصلی:
خواندن بخشهای جداگانه مسیر URL
شرط گذاری و تصمیم گیری بر اساس مسیر فعلیمون
فیلتر کردن دیتاها یا تنظیم نمایش محتوا براساس URL
نحوه استفاده
شماره بخشها از 1 شروع میشه.
مثال:
اگه URL برابر باشه با:
نکته :
اگه بخش مورد نظر در URL وجود نداشته باشه، مقدار null برمیگردد.
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت 👇🏾)
https://x.com/MilwadDev/status/1943673513291690462?s=35
📌 کاربردهای اصلی:
خواندن بخشهای جداگانه مسیر URL
شرط گذاری و تصمیم گیری بر اساس مسیر فعلیمون
فیلتر کردن دیتاها یا تنظیم نمایش محتوا براساس URL
نحوه استفاده
$segment1 = $request->segment(1); // بخش اول مسیر
$segment2 = $request->segment(2); // بخش دوم مسیر
شماره بخشها از 1 شروع میشه.
مثال:
اگه URL برابر باشه با:
https://example.com/products/electronics/phones
$request->segment(1) مقدار "products"
$request->segment(2) مقدار "electronics"
$request->segment(3) مقدار "phones"
نکته :
اگه بخش مورد نظر در URL وجود نداشته باشه، مقدار null برمیگردد.
@GoldenCodeir
#Laravel
(به منبع و مثالش دقت 👇🏾)
https://x.com/MilwadDev/status/1943673513291690462?s=35
👍6🆒3❤1🔥1
خیلی مواقع بعده گرفتنه داده از دیتابیس، نیاز داریم سریع و تمیز به اطلاعات دسترسی داشته باشیم.
تابع array_column در PHP دقیقا برای همین ساخته شده!
🔹 چی کار میکنه؟
میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.
حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.
📌 یه مثال:
✅ حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.
کاربردهاش؟
ساخت lookup table سریع
کدنویسی تمیزتر و کوتاهتر
عالی برای caching و join کردن دیتاستها
خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/wendell_adriel/status/1969010695279989061?t=h88vjyQnlMap9vvVDFxhXQ&s=35
تابع array_column در PHP دقیقا برای همین ساخته شده!
🔹 چی کار میکنه؟
میتونه از یک آرایه چندبعدی، فقط یک ستون رو جداکنه.
حتی میتونه آرایه رو با کلید دلخواهتون reindex کنه.
این یعنی: دیگه لازم نیست هر بار روی آرایه حلقه بزنی و جستجو کنی، دسترسی مستقیم داری.
📌 یه مثال:
$users = [
['id' => 1, 'name' => 'Ali', 'email' => '[email protected]'],
['id' => 2, 'name' => 'Sara', 'email' => '[email protected]'],
['id' => 3, 'name' => 'Reza', 'email' => '[email protected]'],
];
// Reindex بر اساس id
$indexed = array_column($users, null, 'id');
✅ حالا $indexed[2] مستقیما اطلاعات Sara رو برمیگردونه،
بدون هیچ حلقه یا جستجوی اضافه.
کاربردهاش؟
ساخت lookup table سریع
کدنویسی تمیزتر و کوتاهتر
عالی برای caching و join کردن دیتاستها
خلاصه که : با array_column میتونیم از یک آرایه ساده، یک ساختار قوی برای دسترسی مستقیم بسازیم.
یک ترفند کوچیک، اما تاثیره بزرگ در سرعت و خوانایی کد.
#php #اموزش_php #php_tip
@GoldenCodeir
(به منبع و مثالش توجه کنید👇🏾)
https://x.com/wendell_adriel/status/1969010695279989061?t=h88vjyQnlMap9vvVDFxhXQ&s=35
X (formerly Twitter)
Wendell Adriel (@wendell_adriel) on X
PHP Tip 🚀
Using the array_column function, you can reindex a result set by one of its values easily.
This can allow lookups to become direct with a clean code. Great for caching for when you need to join across multiple datasets.
Check the example to learn…
Using the array_column function, you can reindex a result set by one of its values easily.
This can allow lookups to become direct with a clean code. Great for caching for when you need to join across multiple datasets.
Check the example to learn…
👍11
به گفته ی Taylor Otwell
نسخهای جدید از لاراول منتشر شد که دو ویژگی قدرتمند و کاربردی بهش اضافه شده:
📌 شماره ۱ : Cache Failover
یکی از چالشهای رایج در پروژههای بزرگ، خرابی کش (مثل Redis) است. در گذشته اگه کش از کار میفتاد، ممکن بود پروژه با خطا مواجه بشه و از کار بیفته.
حالا لاراول از cache failover پشتیبانی میکنه:
اگه کش اصلی در دسترس نباشه لاراول بصورت خودکار سراغ کش پشتیبان (مثل فایل یا دیتابیس) میره و از بروز خطا جلوگیری میکنه.
📌 شماره ۲: Deferred Queue
قابلیت دوم، نوع جدیدی از صف هست با نام deferred.
این صفها به شما اجازه میدن که اجرای job هارو تا زمانی خاص به تاخیر بندازید ، نه صرفا با delay زمانی، بلکه با منطق های انعطاف پذیرتر.
مثلا:
میتونید job ها رو در صف نگه دارید، ولی اجرای اونارو تا زمان فراهم بودن شرایط مشخصی (مثل آماده شدن یک ریسورس خارجی یا عبور از محدودیتها) به تعویق بندازین.
#Laravel #PHP #Laravel_tip #لاراول
@GoldenCodeir 🔥
داکیومنته لاراول:
https://laravel.com/docs/12.x/cache#cache-failover
(منبع👇🏾)
https://x.com/taylorotwell/status/1980664560492376378?t=AW_V157KGhHWfyPOqCy1Lg&s=35
نسخهای جدید از لاراول منتشر شد که دو ویژگی قدرتمند و کاربردی بهش اضافه شده:
📌 شماره ۱ : Cache Failover
یکی از چالشهای رایج در پروژههای بزرگ، خرابی کش (مثل Redis) است. در گذشته اگه کش از کار میفتاد، ممکن بود پروژه با خطا مواجه بشه و از کار بیفته.
حالا لاراول از cache failover پشتیبانی میکنه:
اگه کش اصلی در دسترس نباشه لاراول بصورت خودکار سراغ کش پشتیبان (مثل فایل یا دیتابیس) میره و از بروز خطا جلوگیری میکنه.
📌 شماره ۲: Deferred Queue
قابلیت دوم، نوع جدیدی از صف هست با نام deferred.
این صفها به شما اجازه میدن که اجرای job هارو تا زمانی خاص به تاخیر بندازید ، نه صرفا با delay زمانی، بلکه با منطق های انعطاف پذیرتر.
مثلا:
میتونید job ها رو در صف نگه دارید، ولی اجرای اونارو تا زمان فراهم بودن شرایط مشخصی (مثل آماده شدن یک ریسورس خارجی یا عبور از محدودیتها) به تعویق بندازین.
#Laravel #PHP #Laravel_tip #لاراول
@GoldenCodeir 🔥
داکیومنته لاراول:
https://laravel.com/docs/12.x/cache#cache-failover
(منبع👇🏾)
https://x.com/taylorotwell/status/1980664560492376378?t=AW_V157KGhHWfyPOqCy1Lg&s=35
X (formerly Twitter)
Taylor Otwell (@taylorotwell) on X
Today's Laravel release ships with cache failover support as well as a "deferred" queue. 🫧
Cache failover automatically tries a backup cache if your primary cache is down.
https://t.co/cdwKRiwZBP
Cache failover automatically tries a backup cache if your primary cache is down.
https://t.co/cdwKRiwZBP
👍11❤4
در نسخهی جدید PHP 8.5 تابع filter_var() یه قابلیت کاربردیه تازه داره:
FILTER_THROW_ON_FAILURE
تا قبل ازین اگه اعتبارسنجی دیتا (مثلا ایمیل نامعتبر) fail میشد،
تابع فقط مقدار false برمیگردوند و باید دستی بررسیش میکردی.
اما حالا بااین گزینه، بجای برگردوندنه false، یک Exception پرتاب (throw) میشه 👇🏾
مزایاش؟
کد تمیزتر ، خطایابی سریعتر ، هماهنگی بهتر با Exception Handling در پروژههای مدرن PHP
#php #backend
@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1983537236403794361?t=IIrUtS60L_j-Rl6cHxtwlg&s=19
FILTER_THROW_ON_FAILURE
تا قبل ازین اگه اعتبارسنجی دیتا (مثلا ایمیل نامعتبر) fail میشد،
تابع فقط مقدار false برمیگردوند و باید دستی بررسیش میکردی.
اما حالا بااین گزینه، بجای برگردوندنه false، یک Exception پرتاب (throw) میشه 👇🏾
try {
$email = filter_var('not-an-email', FILTER_VALIDATE_EMAIL, FILTER_FLAG_THROW_ON_FAILURE);
}
catch (ValueError $e)
{
echo "ایمیل نامعتبر است!";
}مزایاش؟
کد تمیزتر ، خطایابی سریعتر ، هماهنگی بهتر با Exception Handling در پروژههای مدرن PHP
#php #backend
@GoldenCodeir 🔥
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/AshAllenDesign/status/1983537236403794361?t=IIrUtS60L_j-Rl6cHxtwlg&s=19
X (formerly Twitter)
Ash Allen 🚀 (@AshAllenDesign) on X
Did you know PHP 8.5 adds a new FILTER_THROW_ON_FAILURE option for the `filter_var` function?
If the `filter_var` validation fails, it will trigger an exception to be thrown 🔥
If the `filter_var` validation fails, it will trigger an exception to be thrown 🔥
👍10🔥1👏1