| AmirHossein | – Telegram
| AmirHossein |
575 subscribers
46 photos
8 videos
2 files
75 links
نوشته‌های یک برنامه‌نویس ناشی

🫂 @StartUnity
Download Telegram
پکیج Watchdog برای LaraGram منشتر شده تا کار توسعه و نگهداری برنامه‌ها را برای شما راحت‌تر کند.

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

علاوه بر این، Watchdog دارای یک Log Manager در محیط تلگرام است که به شما امکان می‌دهد:
- فایل‌های لاگ را مشاهده و باز کنید
- بین لاگ‌ها پیمایش کنید
- فایل‌های لاگ را حذف کنید
و همه این‌ها بدون نیاز به دسترسی مستقیم به سرور امکان‌پذیر است.

این پکیج به زودی به صورت پیش‌فرض همراه با LaraGram نصب خواهد شد؛ در این ‌حین می‌توانید به صورت دستی نصب و استفاده کنید:
composer r laraxgram/watchdog


خوشحال میشم با استار دادن به ریپوزیتوری از پروژه حمایت کنید.
لینک‌های پروژه:

⭐️ Watchdog
⭐️ LaraGram
⭐️ Core

@LaraXGram
@LaraGramChatFa

@AmirHDeveloper
.
11👍2🔥1
100 🔥
2🔥181
بالاخره PHP 8.5 منتشر شده🔥

این آپدیت شامل تغییرات جالبی به خصوص Pipe Operator هست که به زودی برای هر کدوم یک پست آماده میشه.

@AmirhDeveloper
.
🍓1
عملگر پایپ (Pipe Operator) در PHP

عملگر پایپ ( |> ) از PHP 8.5 با هدف ساده‌سازی جریان داده و افزایش خوانایی کد اضافه شده است. این عملگر امکان می‌دهد خروجی یک عبارت به‌عنوان ورودی تابع بعدی استفاده شود؛ بدون آنکه نیاز به تو در تو کردن فراخوانی‌ها یا استفاده از متغیرهای موقتی باشد.

ساختار کلی عملگر پایپ:
$value |> callable;


در این ساختار:
- مقدار سمت چپ (value) محاسبه شده و سپس به تابع سمت راست (callable) ارسال می‌شود، و نتیجهٔ آن تابع، خروجی نهایی عبارت خواهد بود.

- تابع سمت راست باید فقط یک پارامتر لازم داشته باشد؛ زیرا همان یک پارامتر از پایپ دریافت می‌شود.

- نماد ( ... ) پس از نام تابع، بیانگر این است که پارامتر آن تابع از طریق عملگر پایپ وارد می‌شود.

چند مثال:

پیش از اضافه شدن پایپ تواع پشت سر هم نوشته می‌شد:
$result = strtolower(trim($noscript));

یا از متغیرهای موقتی استفاده می‌شد:
$trim = trim($noscript);
$result = strtolower($trim);

اما با استفاده از پایپ می توان ساختار تمیزتر و قابل فهم‌تری را داشته باشیم:
$result = $noscript
|> trim(...)
|> strtolower(...);

ترتیب اجرای عملیات کاملا روشن و خوانا است:
ابتدا trim، سپس strtolower.

ترکیب توابع استاندارد با Closure
$slug = $noscript
|> trim(...)
|> (fn($s) => str_replace(' ', '-', $s))
|> strtolower(...);

از آنجایی که گفته شد توابع تنها یک متد داشته باشند، برای توابع با چند متد می‌توان از کلوژرها استفاده کرد.
در این مثال str_replace نیاز به پارامترهای بیشتری است به همین دلیل از arrow-function استفاده شده.

عملیات روی آرایه
$clean = $items
|> (fn(array $arr) => array_map(fn($x) => trim($x), $arr))
|> (fn(array $arr) => array_filter($arr, fn($x) => $x !== ''))
|> array_values(...);


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

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

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

- نیازی به ایجاد متغیر برای ذخیرهٔ نتیجهٔ هر مرحله نیست.

محدودیت‌ها و نکات مهم:
- توابعی که بیش از یک پارامتر ضروری دارند، مستقیماً با پایپ قابل استفاده نیستند.
"hello world" |> explode(' ', ...); // ERROR

"hello world" |> (fn($v) => explode(' ', $v)); // correct

- توابعی که پارامترشان با ارجاع (By Reference) دریافت می‌شود قابل استفاده نیستند (مانند array_pop یا sort)

- اگر تابعی مقدار بازگشتی نداشته باشد (void)، نتیجهٔ عملیات null خواهد بود و استفادهٔ آن در میانهٔ زنجیره صحیح نیست.


به طور کلی عملگر پایپ در PHP 8.5 امکان نگارش کدی خواناتر، مرحله‌ای و ساخت‌یافته را فراهم می‌کند.
این عملگر با ارسال خروجی هر مرحله به مرحلهٔ بعد، جریان داده را ساده‌سازی می‌کند و برای پردازش رشته‌ها، آرایه‌ها و داده‌های میان‌مرحله‌ای بسیار مناسب است.
در مقابل، محدودیت‌هایی نظیر نیاز به تک‌پارامتری بودن تابع یا عدم پشتیبانی از توابع دارای ارجاع وجود دارد که باید در استفادهٔ روزمره مورد توجه قرار گیرد.

@AmirhDeveloper
.
2👍62🔥2👎1🍓1🙉1
ارزان
1🍓1
ورژن 4 فریم‌ورک LaraGram درحال توسعه هست و دیگه از پس هر کاری بر میاد

اولین فیچری که می‌خوام بهش اشاره کنم پشتیبانی از MTProto به واسطه Wrapper خودش یعنی LaraProto هست
این یعنی می‌تونیم به سادی ربات‌های سلف‌ رو هم توسعه بدیم.

بعد از اون می‌رسیم به ابزارهای توسعه مینی‌اپ‌ها
لاراگرام توی این ورژن یک سیستم روتینگ تمام‌اعیار مشابه روتینگ لاراول رو در اختیارمون قرار میده و در کنارش یک Template Engine پیشرفته برای رندر ReactJS، VueJS، و احتمالا چیزای دیگه.
این یعنی شما به سادگی فرانت مینی‌اپتون رو توسعه بدید، و بک‌اند اون رو کنار بک‌اند ربات خودتون و کاملا سینک با اون توسعه بدید

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

این سیستم می‌تونه به سادگی یک گفت‌و‌گو بین کاربر و ربات ایجاد کنه، بدون این که نیاز باشه استپ‌هارو مدیریت کنید یا چیزی رو دستی ولیدیشن و نگهداری کنید،
صرفا سوالات رو به این سیستم میدید و باقی کار با لاراگرام هست

فیچر بعدی Acting هست، که باهاش می‌تونید خودتون رو جای یک کاربر دیگه بذارید
فرض کنید یک بخش سفارشات برای کاربر نوشتید، که کاربر سفارشات خودش رو مشاهده کنه
همچنین یکبار هم این سیستم رو توی پنل ادمین پیاده کردید که ادمین لیست سفارش هر کاربر رو ببینه
با این قابلیت فقط یکبار این سیستم برای کاربر توسعه داده میشه، و ادمین کافیه خودش رو جای کاربر بذاره

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

به واسطه این سیستم، سیستم برادکست اضافه میشه که خیلی ساده متن و لیست کاربران رو بهش میدید و عملیات ارسال و ... رو به عهده لاراگرام می‌ذارید

قابلیت دیگه Json Schema هست که باهاش‌میتونید یک ساختار جیستون استاتیک تایپ داشته باشید.
این قابلیت برای API نویسی TMA‌ها و ... می‌تونه کاربردی باشه

اینها بخشی از قابلیت‌های لاراگرام ورژن ۴ هستن که سال آینده ریلیز میشه.

باز هم مثل همیشه استار به ریپوزیتوری باعث شادمانی ماست🔥❤️

⭐️ LaraGram
⭐️ Core

@AmirHDeveloper
.
47🍓5👍2🔥1
Forwarded from Mahi in Tech
درود و امید که خوب باشید.

یک‌سری منابع قرار می‌دم که شاید توی این وضعیت‌‌ای که امیدوارم هرچه زودتر به خوبی تموم شه، به‌دردتون بخوره.

دی‌ان‌اس داخلی:
5.202.100.100
5.202.100.101

رجیستری داکر:
hub.hamdocker.ir
docker.mobinhost.com
docker.arvancloud.ir

میرور NPM, PyPi:
runflare.com/mirrors

میرور Ubuntu:
mirror.digitalvps.ir/ubuntu
ubuntu.pishgaman.net/ubuntu
ubuntu.pars.host
mirror.arvancloud.ir/ubuntu

داکیومنت یه‌سری از تکنولوژی‌ها و ویکی‌پدیای کامپیوتر:
193.151.130.199

DNSTT Resolver:
8.8.8.8:53
77.88.8.8:53
77.88.8.1:53
2.188.21.130:53
2.189.1.1:53
1
Forwarded from Mahi in Tech
Mahi in Tech
درود و امید که خوب باشید. یک‌سری منابع قرار می‌دم که شاید توی این وضعیت‌‌ای که امیدوارم هرچه زودتر به خوبی تموم شه، به‌دردتون بخوره. دی‌ان‌اس داخلی: 5.202.100.100 5.202.100.101 رجیستری داکر: hub.hamdocker.ir docker.mobinhost.com docker.arvancloud.ir …
اگر هم قصد داشتید که یک پیام‌رسان سلف‌هاست بالا بیارید (چیزی که توی این خاموشی ارتباطات به کار میاد) و حوصله‌ی سر و کله زدن با این‌ها و قطعی اینترنت رو برای بالا آوردن mattermost یا rocketchat و یا هرچی نداشتین، می‌تونید از سرویس hamravesh.com استفاده کنید و روش RocketChat خودتون رو بدون دردسر راه‌اندازی کنین، E2EE هم می‌شه روش فعال کرد تا خیال‌تون کمی راحت‌تر باشه.

درغیر این‌صورت ایمیج‌هاشون توی همین رجیستری‌ها موجود هستن، می‌تونید خودتون بالا بیارید.
3🍓1
| AmirHossein |
اولین فیچری که می‌خوام بهش اشاره کنم پشتیبانی از MTProto به واسطه Wrapper خودش یعنی LaraProto هست
این یعنی می‌تونیم به سادی ربات‌های سلف‌ رو هم توسعه بدیم.
تا یک جاهایی پیشرفت داشتیم
می‌تونیم درخواست لاگین بدیم، تلگرام هم کد رو می‌فرسته
این یعنی به احتمال زیاد تمام متدها به درستی کار می‌کنن

ولی خب هنوز خیلی کار داره، و یکم هم سرم شلوغه خیلی نمی‌تونم وقت بذارم روش
و از طرفی هم تلگرام به شدت محدود میکنه بعد چند تا تست
🔥74👍2🍓2