🔶 ایجاد قوانین اعتبار سنجی سفارشی (Validation Rules) برای لاراول
به صورت پیش فرض برای قوانین اعتبار سنجی از Request Validation استفاده می کنیم که داده های ورودی کاربر را، اعتبارسنجی می کند.
اما می خواهیم اعتبار سنجی خاصی ایجاد کنیم که از پیش فرض Request Validation استفاده نمی کند و با استفاده Regex داده های ورودی کاربر را اعتبار سنجی کنیم.
فرض کن برای داده های ورودی mobile و password داریم.
با دستورات زیر دو فایل ValiMobile و ValiPassword ایحاد می کنیم.
برای Regex از سایت زیر کمک گرفتم.
https://ihateregex.io/
فایل VailMobile :
فایل VailPassword :
در آخر با new این دو Validate را صدا می زنیم.
#لاراول
@TheRaymondDev
به صورت پیش فرض برای قوانین اعتبار سنجی از Request Validation استفاده می کنیم که داده های ورودی کاربر را، اعتبارسنجی می کند.
اما می خواهیم اعتبار سنجی خاصی ایجاد کنیم که از پیش فرض Request Validation استفاده نمی کند و با استفاده Regex داده های ورودی کاربر را اعتبار سنجی کنیم.
فرض کن برای داده های ورودی mobile و password داریم.
با دستورات زیر دو فایل ValiMobile و ValiPassword ایحاد می کنیم.
php artisan make:rule ValidMobile
php artisan make:rule ValidPassword
برای Regex از سایت زیر کمک گرفتم.
https://ihateregex.io/
فایل VailMobile :
class ValidMobile implements ValidationRule
{
public function __construct()
{
//
}
public function passes($attribute, $value): bool|int
{
return preg_match('/^9[0-9]{9}$/', $value);
}
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (!preg_match('/^9[0-9]{9}$/', $value)) {
$fail('شماره ' . $attribute . 'شما 10 رقمی می باشد و بدون صفر وارد کنید.');
}
}
}
فایل VailPassword :
class ValidPassword implements ValidationRule
{
public function __construct()
{
//
}
public function passes($attribute, $value): bool|int
{
return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/', $value);
}
public function validate(string $attribute, mixed $value, Closure $fail): void
{
if (!preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/', $value)) {
$fail('نوع' . $attribute . 'نامناسب است و باید ترکیبی از حروف بزرگ و کوچک و اعداد باشد.');
}
}
}
در آخر با new این دو Validate را صدا می زنیم.
use App\Rules\ValidMobile;
use App\Rules\ValidPassword;
return Validator::make($data,
[
'mobile' => ['nullable', 'string', 'unique:users', new ValidMobile()],
'password' => ['required', 'string', 'confirmed', new ValidPassword()],
]
);
#لاراول
@TheRaymondDev
i Hate Regex
i Hate Regex - The Regex Cheat Sheet
i Hate Regex is a regex cheat sheet that also explains the commonly used expressions so that you understand it. Stop hating and start learning.
❤3👍2
Forwarded from Golden Code
ممکنه بخوایم مطمئن شیم که یه کالکشن، اون آیتم مدنظرمون رو بطور یکتا داره یا نه.
درین شرایط بجای استفاده از متود ()count میتونیم از ()containsOneItem هم استفاده کنیم.
حالا چجوری کار میکنه؟
اگه تعداد اون آیتم مدنظرمون در کالکشن ، بیشتر از یه دونه باشه پاسخ false میشه، اگر فقط یکی از اون آیتم باشه پاسخ true میشه.🪴🌴
(یه مثال از کاربردش در مبحث سطوح دسترسی میتونه باشه.)
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/OussamaMater/status/1774534728713908404?t=53_Nco2oPHG1m4gBU75WmQ&s=35
درین شرایط بجای استفاده از متود ()count میتونیم از ()containsOneItem هم استفاده کنیم.
حالا چجوری کار میکنه؟
اگه تعداد اون آیتم مدنظرمون در کالکشن ، بیشتر از یه دونه باشه پاسخ false میشه، اگر فقط یکی از اون آیتم باشه پاسخ true میشه.🪴🌴
(یه مثال از کاربردش در مبحث سطوح دسترسی میتونه باشه.)
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/OussamaMater/status/1774534728713908404?t=53_Nco2oPHG1m4gBU75WmQ&s=35
X (formerly Twitter)
OussamaMater (@OussamaMater) on X
Laravel Tip💡: The "containsOneItem" Method
Sometimes we want to ensure a collection has a single item. Instead of calling the count method on the collection, there is an elegant method called "containsOneItem" that does the same 🚀
#laravel
Sometimes we want to ensure a collection has a single item. Instead of calling the count method on the collection, there is an elegant method called "containsOneItem" that does the same 🚀
#laravel
👍4
🔶 اولین پروژه دورکاری سال ۱۴۰۳ برای سایت شرکتی وردپرس بدست آوردم.
ارزش پروژه : ۶ میلیون تومان
زمان پروژه : زیر ۷ روز
بیعانه : ۲۵ درصد
تعداد صفحات سایت : ۳ الی ۴ صفحه
ٰ@TheRaymondDev
ارزش پروژه : ۶ میلیون تومان
زمان پروژه : زیر ۷ روز
بیعانه : ۲۵ درصد
تعداد صفحات سایت : ۳ الی ۴ صفحه
ٰ@TheRaymondDev
❤17
🔶 آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس
جلسه 15 : پویا سازی و سازگاری محصولات جدید - پر فروش - تخفیف
قیمت دوره ۱.۵ میلیون تومان با تخفیف ۸۰ درصد ۳۰۰۰۰۰ تومان
https://rayium.ir/?p=1247
#ووکامرس
@TheRaymondDev
جلسه 15 : پویا سازی و سازگاری محصولات جدید - پر فروش - تخفیف
قیمت دوره ۱.۵ میلیون تومان با تخفیف ۸۰ درصد ۳۰۰۰۰۰ تومان
https://rayium.ir/?p=1247
#ووکامرس
@TheRaymondDev
❤1
🔶 تغییر رنگ منو با اسکرول کردن
در اکثرا سایت ها دیدید که هنگامی که منو اسکرول می کنید, تغییر رنگ می دهد و با کد جاوا اسکریپت زیر می توانید این روش را ایجاد کنید.
HTML :
CSS:
Javanoscript :
با scroll >= 300 می توانید طول اسکرول را کم و زیاد کنید.
#کد
@TheRaymondDev
در اکثرا سایت ها دیدید که هنگامی که منو اسکرول می کنید, تغییر رنگ می دهد و با کد جاوا اسکریپت زیر می توانید این روش را ایجاد کنید.
HTML :
<nav class="navbar navbar-expand-lg navbar-light border-bottom menu fixed-top"></nav>
CSS:
.menu.scrolling {
background-color:rgba(40, 58, 90, 0.9);
z-index: 9999;
transition: all 0.5s;
}Javanoscript :
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 300) {
$(".menu").addClass("scrolling");
} else {
$(".menu").removeClass("scrolling");
}
});با scroll >= 300 می توانید طول اسکرول را کم و زیاد کنید.
#کد
@TheRaymondDev
👍3
Forwarded from Golden Code
با استفاده از متود ()except میتونیم یک عنصر یا یه آرایه رو از دیتای session رو حذف کنیم،
حالا کجاها کاربرد داره؟
یه جاهایی ممکنه فقط پسورد رو نخوایم بفرستیم(بنا بر دلایل امنیتی)، خب اینجور جاها خیلی این متود کاربرد داره...
در مثال زیر وقتی خروجی بگیریم، name حذف شده (همونطور که تعیین کرده) و باقیه اطلاعات موجود خواهند بود
@GoldenCodeir
(به منبع و مثالش دقت کنین 👇🏾)
https://x.com/iamgurmandeep/status/1745407710492016867?t=p4n1JqewzD5lrq9rusl8Xg&s=35
حالا کجاها کاربرد داره؟
یه جاهایی ممکنه فقط پسورد رو نخوایم بفرستیم(بنا بر دلایل امنیتی)، خب اینجور جاها خیلی این متود کاربرد داره...
در مثال زیر وقتی خروجی بگیریم، name حذف شده (همونطور که تعیین کرده) و باقیه اطلاعات موجود خواهند بود
@GoldenCodeir
(به منبع و مثالش دقت کنین 👇🏾)
https://x.com/iamgurmandeep/status/1745407710492016867?t=p4n1JqewzD5lrq9rusl8Xg&s=35
X (formerly Twitter)
Gurmandeep Singh (@iamgurmandeep) on X
#Laravel 10.40 Tip 🔥
You can use `except()` method to retrieve all session data except the specified array of items.
You can use `except()` method to retrieve all session data except the specified array of items.
❤4
Forwarded from Golden Code
در لاراول ۱۱ اگه قصد داشته باشین با آرایه های چند بعدی کار کنین علاوه بر همون هلپر collect که از ورژن های پیشین در اختیارتون بود میتونین از هلپر fluent هم استفاده کنین.
کار با هلپر fluent نسبت به collect میشه گفت راحت تره(از لحاظ دسترسی به دیتای آرایه) به مثال توجه کنین و تفاوت fluent و collect رو مشاهده کنین...🪴🌴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/MilwadDev/status/1775618875473727968?t=WgqvC-fxB0RDgC-v4NI9yg&s=35
کار با هلپر fluent نسبت به collect میشه گفت راحت تره(از لحاظ دسترسی به دیتای آرایه) به مثال توجه کنین و تفاوت fluent و collect رو مشاهده کنین...🪴🌴
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/MilwadDev/status/1775618875473727968?t=WgqvC-fxB0RDgC-v4NI9yg&s=35
X (formerly Twitter)
Milwad Dev (@MilwadDev) on X
In #Laravel 11 if you want to work with multi-dimension arrays you can use the `fluent` helper instead of the `collect` helper:
👍3🔥3
🔸telAdviser
🔰ربات cli تلگرام برای راحتی بیشتر و دورزدن محدودیتها
💠ویژگیها:
🔹کانال/گروه هایی که محدودیت گذاشتن و فوروارد پستاشونو بستن راحت دور بزنید
🔹پستهای کانال و گروهای پابلیک و پرایوت به هرجایی که خواستید فوروارد کنید تا بکاپ داشته باشید
🔹تایمتونو سر سلکت کردن پستها هدر ندید و...
https://github.com/maanimis/telAdviser
@TheRaymondDev
🔰ربات cli تلگرام برای راحتی بیشتر و دورزدن محدودیتها
💠ویژگیها:
🔹کانال/گروه هایی که محدودیت گذاشتن و فوروارد پستاشونو بستن راحت دور بزنید
🔹پستهای کانال و گروهای پابلیک و پرایوت به هرجایی که خواستید فوروارد کنید تا بکاپ داشته باشید
🔹تایمتونو سر سلکت کردن پستها هدر ندید و...
https://github.com/maanimis/telAdviser
@TheRaymondDev
🔥3👍1
Forwarded from Pink Orca ✌️ پینک اورکا
~> LFS
🩷 LFS(Linux From Scratch) یک پروژه آزاد و اپنسورسه که باهاش راه ساخت یک سیستمعامل لینوکسی رو از اول و گام به گام یاد میگیرید. این پروژه به ما میگه که چطوری از صفر شروع کنیم و یه لینوکس کاملا سفارشی و بدون هیچ چیز اضافهای بسازیم.
توی LFS هیچ برنامهای از قبل نصب نیست. باید از پایه شروع کنید و کامپایل کردن هر چیزی رو از ابتدا یاد بگیرید. حتی باید کرنل لینوکس و برنامههای پایهای مثل bash، gcc و glibc رو هم خودتون کامپایل کنید...
LFS خیلی سخته، ولی برای اونایی که میخوان درک عمیقی از لینوکس و اجزای یک توزیع داشته باشن یا یه سیستمعامل خاص و کاملا سفارشی بسازن عالیه. البته باید حوصله زیادی داشته باشید و از پس مشکلات زیادی بربیاین. ولی در نهایت تجربهای بینظیر و ارزشمنده.
👩💻 www.linuxfromscratch.org
#نوشته #معرفی #لینوکس #گنو
~> @PinkOrca🩷
توی LFS هیچ برنامهای از قبل نصب نیست. باید از پایه شروع کنید و کامپایل کردن هر چیزی رو از ابتدا یاد بگیرید. حتی باید کرنل لینوکس و برنامههای پایهای مثل bash، gcc و glibc رو هم خودتون کامپایل کنید...
LFS خیلی سخته، ولی برای اونایی که میخوان درک عمیقی از لینوکس و اجزای یک توزیع داشته باشن یا یه سیستمعامل خاص و کاملا سفارشی بسازن عالیه. البته باید حوصله زیادی داشته باشید و از پس مشکلات زیادی بربیاین. ولی در نهایت تجربهای بینظیر و ارزشمنده.
#نوشته #معرفی #لینوکس #گنو
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
🔶 هوش مصنوعی Cody برای PHPStorm
اگر جز برنامه نویسانی هستید که پیدا کردن خطاهای برنامه نویسی از گوگل کمک می گیرید, می توانید با استفاده از Cody برای توسعه پروژه کمک بگیرید.
در حال حاضر نسخه رایگان Cody از هوش مصنوعی Claude 2.0 استفاده می کند و در نسخه پرو از GPT 4 و دیگر هوش مصنوعی پشتیبانی می کند که نیازمند اکانت پرمیوم است.
هشدار : بیش از این به هوش مصنوعی وابسته نشوید که به ضررتون تمام میشه...
https://plugins.jetbrains.com/plugin/9682-cody-ai-coding-assistant-with-autocomplete--chat
@TheRaymondDev
اگر جز برنامه نویسانی هستید که پیدا کردن خطاهای برنامه نویسی از گوگل کمک می گیرید, می توانید با استفاده از Cody برای توسعه پروژه کمک بگیرید.
در حال حاضر نسخه رایگان Cody از هوش مصنوعی Claude 2.0 استفاده می کند و در نسخه پرو از GPT 4 و دیگر هوش مصنوعی پشتیبانی می کند که نیازمند اکانت پرمیوم است.
هشدار : بیش از این به هوش مصنوعی وابسته نشوید که به ضررتون تمام میشه...
https://plugins.jetbrains.com/plugin/9682-cody-ai-coding-assistant-with-autocomplete--chat
@TheRaymondDev
روزنامه دیلی میل، ۵ دسامبر ۲۰۰۰:
اینترنت احتمالا یک ترند زودگذر است، زیرا میلیونها نفر آن را کنار میگذارند!
@TheRaymondDev
اینترنت احتمالا یک ترند زودگذر است، زیرا میلیونها نفر آن را کنار میگذارند!
@TheRaymondDev
🥰3😁1
Forwarded from DevTwitter | توییت برنامه نویسی
من یه چند روز بود درگیر این سوال بودم که یه دستور Hello World چجوری توی کنسول چاپ میشه، تا یه حد خیلی کمی هم تونستم بفهمم که چخبره. همونا رو جمعبندی کردم و یه ویدیو گرفتم، امیدوارم که به درد کسی بخوره.
https://youtu.be/tNPYw23CoZ4?si=35Gk9HvLnPJArXV-
@DevTwitter | <Yasha/>
https://youtu.be/tNPYw23CoZ4?si=35Gk9HvLnPJArXV-
@DevTwitter | <Yasha/>
Forwarded from متخصص وردپرس | پوینا
متاسفانه با افزایش هزینه های دلار هزینه های دیتاسنتر نیز گران شدن
و خیلی از دیتاسنتر ها هزینه های اشتراک فضاشون رو تقریبا 50 درصد بیشتر کردن
نمونش عکس بالا یکی از فاکتور مشتریان ما هست
با این روند باید شاهد افزایش قیمت هاست و سرور در ایران باشیم از 4700 به 8100 رسیده
قطعات سروریم طی یکسال گذشته تقریبا دو و نیم برابر شدن مثلا یک قطعه 7 میلیونی الان حدود 18 تومن شده
و خیلی از شرکتا برای رقابت در بازار مجبور به آور سل کردن هستن
@poinair پوینا
و خیلی از دیتاسنتر ها هزینه های اشتراک فضاشون رو تقریبا 50 درصد بیشتر کردن
نمونش عکس بالا یکی از فاکتور مشتریان ما هست
با این روند باید شاهد افزایش قیمت هاست و سرور در ایران باشیم از 4700 به 8100 رسیده
قطعات سروریم طی یکسال گذشته تقریبا دو و نیم برابر شدن مثلا یک قطعه 7 میلیونی الان حدود 18 تومن شده
و خیلی از شرکتا برای رقابت در بازار مجبور به آور سل کردن هستن
@poinair پوینا
متخصص وردپرس | پوینا
متاسفانه با افزایش هزینه های دلار هزینه های دیتاسنتر نیز گران شدن و خیلی از دیتاسنتر ها هزینه های اشتراک فضاشون رو تقریبا 50 درصد بیشتر کردن نمونش عکس بالا یکی از فاکتور مشتریان ما هست با این روند باید شاهد افزایش قیمت هاست و سرور در ایران باشیم از 4700…
🔶 اورسل چیست؟
با فعال شدن اورسل تعداد اکانت قابل ساخت محدود میشود ولی حجم اکانت های قابل ساخت محدودیت ندارد.
در این حالت (برای هاست 10 گیگ) فقط می تونید 20 اکانت بسازید (محدودیت تعداد اکانت در سرویس 10 گیگ نمایندگی لینوکس طلاهاست در حالت اوورسل 20 عدد است). برای مثال 20 هاست 1 مگابایتی، یا 20 هاست 100 مگابایتی، یا 20 هاست 1 گیگابایتی یا 20 هاست 100 گیگابایتی و ...
در این حالت حجم کل اکانت های ساخته شده مطرح نیست و فقط محدودیت تعداد اکانت (20 عدد) دارید. همچنین با توجه به اینکه ریسلر شما 10 گیگابایتی است، مجموع فایل های آپلود شده توسط کاربران (یعنی حجم استفاده شده واقعی) شما نمی تواند از 10 گیگابایت بیشتر شود.
@TheRaymondDev
با فعال شدن اورسل تعداد اکانت قابل ساخت محدود میشود ولی حجم اکانت های قابل ساخت محدودیت ندارد.
در این حالت (برای هاست 10 گیگ) فقط می تونید 20 اکانت بسازید (محدودیت تعداد اکانت در سرویس 10 گیگ نمایندگی لینوکس طلاهاست در حالت اوورسل 20 عدد است). برای مثال 20 هاست 1 مگابایتی، یا 20 هاست 100 مگابایتی، یا 20 هاست 1 گیگابایتی یا 20 هاست 100 گیگابایتی و ...
در این حالت حجم کل اکانت های ساخته شده مطرح نیست و فقط محدودیت تعداد اکانت (20 عدد) دارید. همچنین با توجه به اینکه ریسلر شما 10 گیگابایتی است، مجموع فایل های آپلود شده توسط کاربران (یعنی حجم استفاده شده واقعی) شما نمی تواند از 10 گیگابایت بیشتر شود.
@TheRaymondDev
👍2
Forwarded from Golden Code
در نسخه ۱۱ لاراول اگه نیاز به بررسی دیتای session داشته باشیم میتونیم خیلی راحت با متود ()hasAny عملیات مربوطه رو انجام بدیم...✔️
مستقیم با یک hasAny میتونیم آیتم های مدنظرُ مشخص کنیم(نیازی به کدای تکراری نیست) خودش متوجه میشه هرکدوم از آیتم ها که true شد باید عملیات مربوطه انجام شه🪴🌴
ما کافیه آیتم های مدنظرمونو بصورت آرایه مشخص کنیم
@GoldenCodeir
به منبع و مثالش توجه کنین👇🏾
https://twitter.com/MilwadDev/status/1776754258525704363?t=DEOQFvK89Eh058peKNTlmQ&s=19
مستقیم با یک hasAny میتونیم آیتم های مدنظرُ مشخص کنیم(نیازی به کدای تکراری نیست) خودش متوجه میشه هرکدوم از آیتم ها که true شد باید عملیات مربوطه انجام شه🪴🌴
ما کافیه آیتم های مدنظرمونو بصورت آرایه مشخص کنیم
@GoldenCodeir
به منبع و مثالش توجه کنین👇🏾
https://twitter.com/MilwadDev/status/1776754258525704363?t=DEOQFvK89Eh058peKNTlmQ&s=19
X (formerly Twitter)
Milwad Khosravi ⚡️ (@MilwadDev) on X
If you want to check multiple keys exist in a session, you can use the `hasAny` method in #Laravel 11
❤4
🔶 کد نمایش مقاله مرتبط در وسط متن برای وردپرس
#وردپرس
@mehdiamdev
@TheRaymondDev
add_filter('the_content',function ($content){
if(is_singular('post')){
$post_id = get_the_ID();
ob_start();
$args = array(
'post_type' => 'post',
'posts_per_page' => '1',
'post_status' => 'publish',
'post__not_in' => array($post_id),
'category__in' => wp_get_post_categories($post_id),
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
?>
<p>
<a href="<?php the_permalink(); ?>" style="padding:5px 15px;display: flex;flex-wrap:wrap;align-items: center;margin: 20px 0;border: 1px solid #ddd;border-radius: 5px;">
<?php the_post_thumbnail('thumbnail', ['style' => 'width:50px;height:50px;border-radius:5px;object-fit:cover;']); ?>
<span style="color: blue;margin: 0 15px 0 5px;font-weight: bold;display: inline-block">بیشتر بخوانید:</span>
<b style="color: #222;"><?php the_noscript(); ?></b>
</a>
</p>
<?php
}
}
wp_reset_postdata();
$related_html = ob_get_clean();
$paragraphs = explode( '</p>', $content );
$middle_index = floor( count( $paragraphs ) / 2 );
array_splice( $paragraphs, $middle_index, 0, '<p>' . $related_html . '</p>' );
return implode( '', $paragraphs );
}
return $content;
});#وردپرس
@mehdiamdev
@TheRaymondDev