tapswap community
tapswap community
Notcoin Community
Notcoin Community
Whale Chanel
Whale Chanel
tapswap community
tapswap community
Notcoin Community
Notcoin Community
Whale Chanel
Whale Chanel
| AmirHossein | avatar

| AmirHossein |

نوشته های یک برنامه نویس ناشی
🫂 @StartUnity
🫂 @startcoding0
TGlist rating
0
0
TypePublic
Verification
Not verified
Trust
Not trusted
Location
LanguageOther
Channel creation dateApr 23, 2023
Added to TGlist
Apr 06, 2025
Linked chat

Records

15.05.202523:59
633Subscribers
29.03.202512:36
550Citation index
06.04.202508:53
399Average views per post
06.04.202508:53
567Average views per ad post
10.04.202517:18
13.51%ER
07.03.202508:53
64.35%ERR
Subscribers
Citation index
Avg views per post
Avg views per ad post
ER
ERR
APR '25MAY '25

Popular posts | AmirHossein |

08.05.202515:32
قدرت‌ها می‌توانند تاریخ را تحریف کنند، اما نمی‌توانند حقیقت را برای همیشه خاموش کنند. #خلیج_فارس، حقیقتی است ریشه‌دارتر از دروغ‌هایی که با سیاست نوشته می‌شوند. این نام، میراث ماست و تا همیشه خواهد ماند.

Power can distort history, but it can never silence the truth. The #Persian_Gulf is a truth far deeper than any lie written by politics. This name is our legacy and it will endure forever.

🔍 ircf.space
@ircfspace
08.05.202519:55
یک باگی که توی سایت های فروشگاهی می‌تونه پیش بیاد که توی سبد خریدها هست

فرض کنید یک محصول رو به تعداد 1 عدد میخری.
الگوریتم طوری هست که تعداد محصول در قیمت ضرب میشه و قیمت نهایی برای فروش مشخص میشه.
برخی سایت‌ها اعتبارسنجی‌ای برای این تعداد ندارن و من می‌تونم توی اون اینپوت مقدار 0.01 رو بفرستم و محصول رو با قیمت غیرمنطقی بخرم

فرض کنیم محصول 100,000 تومنی رو میخرم 1000 تومن

پس توی توسعه روی کوچک‌ترین ورودی ها هم اعتبارسنجی بذارید.

@AmirhDeveloper
.
09.05.202519:51
🔰 احتمالا ورژن 3 فریم‌ورک LaraGram تا 25 خرداد ریلیز میشه.

🔵 اتفاقات زیادی توی این ورژن افتاده و بالاخره بعد دو ورژن یک ورژن استیبل هست که دیگه قرار نیست ساختار کد نویسی توی اون تغییر زیادی بکنه.

🔴 همونطور که قبلا گفته بودم، Console Kernel بهش اضافه شده که کامندهای زیادی رو در اختیارتون قرار میده برای راحتی کار با فریم‌ورک.

این کرنل توی ورژن های قبلی هم بوده، ولی صرفا یک کامند رو می تونست اجرا بکنه، ولی الان به شدت پیشرفته هست:

▫️ می تونید کامندها رو زمان‌بندی کنید برای اجرا
▫️ ایجاد چک‌باکس، دراپ‌داون، اینپوت، اسپینر و... توی محیط ترمینال
▫️ ساخت کامندهای اختصاصی
▫️تکیمل خودکار کامندهای ناقص
▫️ و .....

🔵 در ادامه قرار بود Http Kernel اضافه بشه برای مدیریت آپدیت‌های تلگرام و ارسال درخواست‌ها، ولی این اسم خیلی مناسب نبود و Bot Kernel جایگزین اون شد.
این کرنل وظیفه دریافت آپدیت ها و پردازششون رو داره.

از طرفی سیستم Listening کاملا مشابه Routing لاراول بازنویسی شده و ترکیب اون با Bot Kernel قابلیت های به شدت زیادی رو در اختیارتون قرار میده:

▫️ تمامی لیسنرها در ورژن های گذشته پا برجا هستن
▫️ امکان ایجاد middlewareها بر روی Listenerها
▫️ دریافت و پردازش پارامترها و اعمال شروط برای اعتبارسنجی
▫️ امکان نام‌دهی به Listenerها
▫️ امکان ریدایرکت از یک Listener به Listener دیگر
▫️ امکان Listener Model Binding، و استفاده از دیتابیس در Listenerها
▫️ امکان قفل‌ کردن و اعمال محدودیت بر Listenerها
▫️ امکان ایجاد Fallback Listener ها
▫️ و .....

❗️ تا این بخش شاهد تغییرات اساسی در این ورژن هستیم، اما هنوز به نصف قابلیت‌ها نرسیدیم.

⚜️ سیستم صف‌ها و Queue and Job اضافه شده که می‌تونید عملیات‌ها و تسک‌هاتون رو زمانبندی کنید و در پروسس‌های جداگانه اجرا بشن

⚜️ سیستم احراز هویت با میدولرهای مختلف برای بررسی سطوح دسترسی اضافه شده

⚜️ سیستم کش با 6 درایور مخلتف با امکانات و انعطاف پذیری بالا به همراه RateLimiter برای محدود کردن درخواست ها

⚜️ بازنویسی کامل و اختصاصی Eloquent ORM برای LaraGram با پشتیبانی از 5 دیتابیس مختلف

⚜️ سیستم Encryption و Hashing

⚜️ اضافه شدن FileSystem برای کار با فایل ها و فولدر ها

⚜️ اضافه شدن سیستم Logging

⚜️ اضافه شدن Process و Pipeline برای مدیریت پردازش ها

⚜️ اضافه شدن Redis Manager پیشرفته برای کار با Redis

⚜️ اضافه شدن سیستم Translation برای ساخت ربات های چند زبانی

❕ و خب باز هم مونده،

⚜️ سیستم MultiBot Connection برای توسعه و کار با چند ربات به صورت همزمان

⚜️ سیستم Divider برای تقسیم وظایف بین چندین ربات

⚜️ سیستم Step Managment برای مدیریت Step ها

⚜️ موتور Temple8، برای تبدیل فایل های template به درخواست های تلگرام

⚜️ سیستم Validation برای اعتبارسنجی درخواست ها

⚜️ اضافه شدن ساپورت ها برای کار با زمان ها، رشته ها، اعداد و کالکشن ها

⚜️ اضافه شدن LaraGram Installer برای نصب ساده تر و حرفه ای تر

⚜️ استریم رپرهایی برای کار با هسته LaraGram اضافه میشه برای تعامل ساده تر با اون

⚜️ بازنویسی داکیومت به صورت کامل و حرفه ای

⚜️ همچنین اضافه شدن هلپر های مختلف برای کیبورد ها، تاپیک ها و...

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

🔵 و اینکه LaraGram یک فریم‌ورک هست، و شما می‌تونید برای اون پکیج بنویسید و مثل لاراول با استفاده از Providerها اون رو توی LaraGram استفاده کنید

❗️ و احتمالا کلی چیز دیگه که فراموش کردم.

🔱 از اونجایی که Bot Kernel به جای HTTP Kernel اضافه شد، پس می‌تونیم HTTP Kernel رو به عنوان قابلیت جدید به ورژن 4 برای آینده اضافه کنیم.

🔱 تمامی سرویس های LaraGram به ریپوزیتوری های جداگانه منتقل میشن و به صورت meta-package برای LaraGram نصب میشن

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

🔰LaraGram
🔰LaraGram Core
🔰Laraquest

♦️@AmirhDeveloper
.
08.05.202519:51
درود به خانواده اونی که خندیده
بهترین کادو ای که تا به حال گرفتم ❤️😂
27.04.202522:31
کاش یکبار هم بود برای ایران هرچیزی به‌جز تسلیت بگیم... 🖤
28.04.202518:58
سلام به همه،

احتمالاً شما هم دیدید که خیلی از دامنه‌های اینترنتی بدون اینکه استفاده واقعی بشن، فقط برای خرید و فروش با قیمت‌های عجیب و غریب ثبت شدن. این کار هم انصاف رو زیر سوال می‌بره، هم جلوی کسب‌وکارهای نوپا و استارتاپ‌ها رو می‌گیره که بتونن یه دامنه‌ی درست و حسابی برای خودشون داشته باشن.

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

لطفاً کارزار رو امضا کنید و برای دوستاتون هم بفرستید تا بیشتر دیده بشه.
لینک کارزار:
https://www.karzar.net/207226

ممنون از همتون ❤️

@Amirhdeveloper
.
29.04.202510:48
حمایت صفر 👌 بنازم
20.04.202515:40
استریم‌ ها در PHP - قسمت نهم

- ساخت استریم رپر سفارشی


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

به عبارتی می‌توانیم یک Stream Wrapper سفارشی بسازیم و آن را با یک اسکیم (پروتکل) دلخواه (مثلاً myprot://) ثبت کنیم و سپس با توابع معمولی PHP مثل fopen() یا file_get_contents() به منابع سفارشی خود دسترسی داشته باشیم.

- مراحل ساخت Stream Wrapper سفارشی

ابتدا یک کلاس PHP تعریف می‌کنیم که متدهای لازم برای یک Stream Wrapper را پیاده‌سازی کند. این متدها شامل عملیات پایه‌ای مانند باز کردن، خواندن، نوشتن و ... روی منبع سفارشی هستند و با نام های خاص و از پیش تعیین شده پیاده سازی می شوند (در بخش بعد لیست کامل متدها توضیح داده خواهد شد).

نام کلاس می‌تواند دلخواه باشد (مثلاً MyStreamWrapper) و این کلاس نماینده‌ی پروتکل سفارشی ما خواهد بود که متدهای ما در آن تعریف می شوند.

پس از تعریف کلاس، باید آن را به PHP معرفی (ثبت) کنیم.
برای این کار از تابع stream_wrapper_register استفاده می‌شود.
پارامتر اول نام پروتکل (اسکیم) دلخواه ما به صورت رشته (مثلاً "myprot") و پارامتر دوم نام کلاس پیاده‌کننده‌ی آن پروتکل است.

اگر ثبت با موفقیت انجام شود، از این پس هر زمان که PHP با آدرسی به شکل myprot://... مواجه شود، به جای دسترسی مستقیم به فایل‌سیستم، متدهای کلاس ما را فراخوانی می‌کند. در صورت عدم موفقیت در ثبت (مثلاً اگر نام پروتکل تکراری باشد) این تابع مقدار false برمی‌گرداند.

پس از ثبت پروتکل سفارشی، می‌توانیم از آن دقیقاً مانند سایر پروتکل‌ها استفاده کنیم.
برای مثال، می‌توان با fopen("myprot://something", "r") یک منبع را باز کرد که منجر به اجرای متد stream_open (یکی از متدهای خاص و از پیشی تعیین شده) در کلاس ما می‌شود.

برای روشن‌تر شدن موضوع، یک مثال ساده در نظر بگیرید. فرض کنیم می‌خواهیم یک Stream Wrapper بنام var:// پیاده‌سازی کنیم که با آن بتوان داده‌ها را مستقیماً در یک متغیر PHP ذخیره و بازیابی کرد (نوعی استریم درون‌حافظه‌ای).
کلاس ما مثلاً VariableStream نام دارد و داده‌ها را در یک متغیر سراسری با نام مشخص ذخیره می‌کند:
class VariableStream {

نکته: برای خوانایی بهتر کد، پیشنهاد می‌شود آن را درون یک ادیتور باز کنید.

در مثال بالا، ابتدا پروتکل var:// به کلاس VariableStream نگاشت شده است.

سپس متغیری به نام $myvar تعریف شده و با fopen("var://myvar", "r+") یک استریم خواندن/نوشتن روی آن باز می‌کنیم. این عمل باعث فراخوانی stream_open در کلاس می شود.

با fwrite در واقع متد stream_write کلاس فراخوانی می‌شود و داده را در متغیر ذخیره می‌کند.

در پایان fclose($fp) استریم را می‌بندد (که منجر به stream_close در کلاس می‌شود، هرچند در این مثال ما این متد را پیاده‌سازی نکرده‌ایم).

در نهایت خروجی به صورت زیر خواهد بود:
string(12) "Hello
World
"


همانطور که مشاهده می‌کنید، با استفاده از Stream Wrapper سفارشی، توانستیم عملیات فایل‌گونه (خواندن/نوشتن) را روی یک متغیر ساده انجام دهیم، گویی که یک فایل است.

در قسمت های بعد، تمامی متدهایی که می‌توان در یک Stream Wrapper سفارشی پیاده‌سازی کرد را معرفی کرده و کاربرد هر کدام را توضیح می‌دهیم.

#PHP #PHP_streams
@AmirhDeveloper
.
25.04.202520:43
نمیدونم چرا ریپوزیتوری‌های گیت‌هاب من به‌جای گرفتن استار، استار از دست میده
Log in to unlock more functionality.