Developer.manifest – Telegram
Developer.manifest
77 subscribers
64 photos
2 videos
1 file
28 links
👋 سلام! من سعید عبدالهیان (saeedvir) هستم.
💻 توسعه‌دهنده وب و متخصص PHP / Laravel
📂 پروژه‌ها و نمونه‌کارها:
https://github.com/saeedvir

تماس با من
@PhpWebDeveloper

🚀 علاقه‌مند به ساخت پروژه‌های تمیز، بهینه و حرفه‌ای
Download Telegram
قانون بِنفورد یا قانون رقم اول می‌گوید که در فهرست عددهایی که در بسیاری از (البته نه همهٔ) پدیده‌های زندگی واقعی رخ می‌دهند، رقم اول عددها به‌طور خاص و غیریکنواختی توزیع می‌شود. بر طبق این قانون، تقریباً در یک‌سوم موارد رقم نخست ۱ است، و عددهای بزرگ‌تر در رقم نخست به ترتیب با بسامد کمتری رخ می‌دهند، و عدد ۹ کمتر از یک بار در هر بیست عدد ظاهر می‌شود.

علیرغم اینکه توزیع اعداد یا پدیده‌های طبیعی معمولا از توزیع نرمال تبعیت می‌کنند رقم اول این اعداد از قانون بنفورد تبعیت می‌کنند. به بیان دیگر می‌توان گفت که قانون بنفورد نوع دیگری از نمایش توزیع اعداد است که در آن اگر مجموعه اعدادی که رقم اول آنها ۱ و ۲ و ۳ و… است را کنار یکدیگر بگذاریم کل مجموعه را نمایش داده‌ایم.[۱] هرگاه که خود عددها به‌طور لگاریتمی توزیع شده باشند، این توزیع رقم‌های نخست منطقی خواهد بود. بنابر دلایلی، عددهایی که در سنجش‌های واقعی ثبت می‌شوند، معمولاً توزیع لگاریتمی دارند.

این قانون به نام فرانک بنفورد فیزیکدان نامیده شده‌است، هرچند که پیش از آن سیمون نیوکام در سال ۱۸۸۱ آن را بیان کرده بود.

🔗 Telegram : (at)DeveloperManifest
Developer.manifest
یک نمونه کد PHP برای بررسی این قانون : https://gist.github.com/saeedvir/0cdaf5de7e47d679638e8dd4905c082c تست آنلاین : https://onlinephp.io/c/956b24 🔗 Telegram : (at)DeveloperManifest
نمونه اجرای این قانون روی داده های قیمتی یک فروشگاه !
{
"distribution": {
"1": {
"digit": 1,
"expected": 30.1,
"actual": 29.27,
"difference": -0.83
},
"2": {
"digit": 2,
"expected": 17.61,
"actual": 5.69,
"difference": -11.92
},
"3": {
"digit": 3,
"expected": 12.49,
"actual": 14.23,
"difference": 1.73
},
"4": {
"digit": 4,
"expected": 9.69,
"actual": 8.94,
"difference": -0.75
},
"5": {
"digit": 5,
"expected": 7.92,
"actual": 12.2,
"difference": 4.28
},
"6": {
"digit": 6,
"expected": 6.69,
"actual": 10.57,
"difference": 3.87
},
"7": {
"digit": 7,
"expected": 5.8,
"actual": 6.5,
"difference": 0.7
},
"8": {
"digit": 8,
"expected": 5.12,
"actual": 6.5,
"difference": 1.39
},
"9": {
"digit": 9,
"expected": 4.58,
"actual": 6.1,
"difference": 1.52
}
},
"deviation_score": 3
}

🔗 Telegram : (at)DeveloperManifest
همیشه انتقال از نسخه های قدیمی به نسخه های جدید لاراول دردسرهای خودش رو داره


گروه توسعه لاراول Shift را معرفی کرد ولی اگر نخواهید از اون استفاده کنید راه حل ش

این ریپو هست

نسخه به نسخه باید پیش برید
https://laravel-upgrade-helper.github.io/


👇
🔗 Telegram : (at)DeveloperManifest
سوال چالشی:

فرض کنید یک رشته حداقل پنج کارکتری دارید به صورت

abcde
ابتدا این رشته را به چهار قسمت تقسیم کند و در یک آرایه بریزید

بعد ایندکس های آرایه را به صورت تصادفی به هم بریزد

حالا روشی طراحی کنید که بعد از این به هم ریختن بتوانید دوباره این رشته را بازیابی کنید.

😁بیخیال هوش مصنوعی بشید لطفا !

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

#چالش
#چالش_یک

Telegram: (at)developer.manifest
معرفی سرویس Context7

هدف از راه اندازی این سرویس ، ارائه داکیومنت و محتوا برای هوش مصنوعی و ایجنت های برنامه نویسی هست.

کافیه MCP سرور Context7 را روی ویرایشگر متن خودتون نصب کنید و برای راهنمایی ازش سوال کنید.

اطلاعات بیشتر در وبسایت Context7

پیشنهاد می کنم در تکمیل این وبسایت مشارکت کنید

برای نمونه برای سه تا پکیج نوشته شده برای لاراول می تونید لینک های زیر رو ببینید :
https://context7.com/saeedvir/shopping-cart

https://context7.com/saeedvir/laravel-permissions

https://context7.com/saeedvir/laravel-modular


به تب Chat برید و در رابطه با استفاده از این پکیج سوال کنید !

How do I install this library?

Based on the documentation, here's how to install the Laravel Shopping Cart library:

Install via Composer:

composer require saeedvir/shopping-cart
....


😎👇
@DeveloperManifest
🔥1
Developer.manifest
سوال چالشی: فرض کنید یک رشته حداقل پنج کارکتری دارید به صورت abcde ابتدا این رشته را به چهار قسمت تقسیم کند و در یک آرایه بریزید بعد ایندکس های آرایه را به صورت تصادفی به هم بریزد حالا روشی طراحی کنید که بعد از این به هم ریختن بتوانید دوباره این رشته را…
پاسخ #چالش_یک

در حقیقت بدون ذخیره کردن اطلاعات اصلا امکان به هم ریختن و بازیابی وجود نداره

پس میاییم اطلاعات ایندکس اطلاعات را به نحوی که قابل بازیابی باشه ذخیره می کنیم


روش اول :
1- تقسیم رشته به یک آرایه 4 تایی
2-ذخیره ایندکس ها و به هم ریختن آرایه
3-بازیابی آرایه جدید و تبدیل به رشته

روش دوم:
1- تقسیم رشته به یک آرایه 4 تایی
2-ذخیره ایندکس ها به صورت جداگانه (maping) و به هم ریختن آرایه
3-بازیابی آرایه جدید و تبدیل به رشته

روش سوم:
1- تقسیم رشته به یک آرایه 4 تایی
2-استفاده از الگوریتم "Fisher - Yates"
3-بازیابی آرایه جدید و تبدیل به رشته


کد این سه روش در گیت هاب ببینید :

https://gist.github.com/saeedvir/b449c12aa68857c559e719fd15389b29



😎👇
@DeveloperManifest
🔥2
supabase-table-editor.webm
2.4 MB
پلتفرم Supabase در دسته‌ی Backend-as-a-Service (BaaS) است که مجموعه‌ی کاملی از ابزارها را برای توسعه‌دهندگان فراهم می‌کند تا بتوانند به‌سرعت برنامه‌های مدرن بسازند.

پکیج لاراول کار با این سرویس :👇
https://news.1rj.ru/str/DeveloperManifest/35


نسخه FREE برای کارهای سبک کاملا جواب میده

https://supabase.com

😎👇@DeveloperManifest
Developer.manifest
supabase-table-editor.webm
🌐 ویژگی‌های اصلی
پایگاه داده و APIها

پایگاه داده‌ی PostgreSQL به همراه PostgREST API برای ساخت فوری APIهای REST

پشتیبانی از GraphQL از طریق افزونه‌ی pg_graphql

دارای قابلیت جستجوی تمام‌متنی (Full-text search)

احراز هویت (GoTrue)

سیستم احراز هویت داخلی با پشتیبانی از ورود با شبکه‌های اجتماعی

پشتیبانی از احراز هویت چندمرحله‌ای (MFA)

سازگار با ارائه‌دهندگان مختلف احراز هویت مانند Keycloak و OAuth

قابلیت‌های بلادرنگ (Realtime)

همگام‌سازی داده‌ها به‌صورت بلادرنگ

پشتیبانی از امنیت در سطح ردیف (Row-Level Security) برای اشتراک‌گذاری امن داده‌ها

مناسب برای برنامه‌های هم‌زمان، مشارکتی و چندنفره (multiplayer)

فضای ذخیره‌سازی (Storage)

مدیریت و ذخیره‌سازی فایل‌ها

یکپارچگی کامل با پایگاه داده

توابع بدون سرور (Serverless Functions)

اجرای Edge Functions برای منطق اختصاصی

مقیاس‌پذیری بالا برای پردازش سمت سرور

هوش مصنوعی و بردارها (pgvector)

پشتیبانی از بردارهای嵌ه برای کاربردهای هوش مصنوعی

اتصال به OpenAI و سرویس‌های هوش مصنوعی دیگر

مناسب برای ساخت برنامه‌های مجهز به هوش مصنوعی (AI-powered)

تجربه توسعه‌دهنده (Developer Experience)

داشبورد گرافیکی برای مدیریت آسان

ابزار خط فرمان (CLI) برای توسعه‌ی محلی

پشتیبانی از شاخه‌های پیش‌نمایش (Preview Branches) برای جریان‌های کاری توسعه

زبان سرور PostgreSQL برای پشتیبانی بهتر در محیط IDE

🚀 چرا توسعه‌دهندگان از Supabase استفاده می‌کنند

بسته‌ی کامل: تمام سرویس‌های بک‌اند به‌صورت یکپارچه در کنار هم کار می‌کنند

کاربرپسند: کاهش کارهای تکراری و پیچیدگی زیرساخت

مقیاس‌پذیر: توانایی رشد بدون نیاز به تغییرات سنگین

متن‌باز: قابلیت استقرار شخصی (Self-hosted) یا استفاده به‌صورت سرویس ابری مدیریت‌شده

حفظ حریم خصوصی: سازگار با GDPR و دارای کنترل‌های امنیتی قوی

این پروژه از حمایت مالی قابل توجهی (در قالب سرمایه‌گذاری سری A و B) برخوردار است و توسط شرکت‌های زیادی برای ساخت برنامه‌های SaaS، ابزارهای مبتنی بر هوش مصنوعی، بازی‌های چندنفره بلادرنگ و موارد دیگر استفاده می‌شود.
یک پکیج برای Supabase منتشر کردم که می تونید از اون استفاده کنید

composer require saeedvir/supabase


اطلاعات بیشتر در صفحه گیت هاب

وب سایت Supabase

😎👇@DeveloperManifest
1
یک ضعف امنیتی در
symfony/http-foundation
مشاهده شده است

symfony/http-foundation

CVE-2025-64500: Incorrect parsing of PATH_INFO can lead to limited authorization | bypass

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-64500

https://symfony.com/blog/cve-2025-64500-incorrect-parsing-of-path-info-can-lead-to-limited-authorization-bypass

https://www.tenable.com/cve/CVE-2025-64500?utm_source=chatgpt.com


composer show symfony/http-foundation

composer update symfony/http-foundation


لطفا هرچه سریعتر نسبت به بروزرسانی آن اقدام کنید


#باگ
#laravel
#laravel_security
#security

اطلاعات بیشتر در
😎👇
@developermanifest
Developer.manifest
یک ضعف امنیتی در symfony/http-foundation مشاهده شده است symfony/http-foundation CVE-2025-64500: Incorrect parsing of PATH_INFO can lead to limited authorization | bypass https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-64500 https://symfony.com/blog/cve…
این باگ در کدام بخش اتفاق افتاده ؟

در فایل
src/Symfony/Component/HttpFoundation/Request.php‎   Line : 1985



        if (false === $pathInfo || '' === $pathInfo) {
// If substr() returns false then PATH_INFO is set to an empty string
return '/';
}


که برای رفع این مشکل ، این کد
if (false === $pathInfo || '' === $pathInfo || '/' !== $pathInfo[0]) {
return '/'.$pathInfo;
}

جایگزین شده است.
شاید وقت اون رسیده به فکر جایگزین برای JSON باشیم !

اخیرا فرمت TOON یا
Token-Oriented Object Notation
معرفی شده.

{
"users": [
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "user" }
]
}


users[2]{id,name,role}:
1,Alice,admin
2,Bob,user


که حدود 40 درصد کاهش نسبت به json رو نشون میده.

اگر علاقه مند هستید :


https://github.com/toon-format/toon

https://scalevise.com/json-toon-converter


😎👇 نمونه کد PHP کانال قرار گرفت
https://news.1rj.ru/str/DeveloperManifest
Developer.manifest
شاید وقت اون رسیده به فکر جایگزین برای JSON باشیم ! اخیرا فرمت TOON یا Token-Oriented Object Notation معرفی شده. { "users": [ { "id": 1, "name": "Alice", "role": "admin" }, { "id": 2, "name": "Bob", "role": "user" } ] } users[2]{id,name,role}:…
https://github.com/HelgeSverre/toon-php

https://github.com/matmper/php-toon/tree/main


https://github.com/toon-format/toon?tab=readme-ov-file#installation--quick-start

https://www.curiouslychase.com/playground/format-tokenization-exploration
چه طور در PowerShell دستورات خلاصه درست کنیم ؟

ابتدا پاورشل را باز کنید و دستور زیر را اجرا کنید :
echo $PROFILE


سپس ئدر مسیر مشخص شده ، یک فایل ایجاد کنید
برای مثال :
C:\Users\YourName\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1


حالا داخل این فایل عبارت زیر را وارد کنید :
function a {
& php .\artisan @args
}


فایل را ذخیره کنید.

حالا از پاورشل خارج شوید.

از این به بعد در هر پوشه پروژه لاراول می توانید دستور زیر را استفاده کنید :

a optimize
a optimize:clear
a route:list


در حقیقت دستور a معادل php artisan هست.


😎👇
@developerManifest
🔥1
مقایسه حالت‌های بارگذاری تصاویر

مرورگرها هنگام نمایش تصاویر، می‌توانند از دو ویژگی مهم استفاده کنند:

1️⃣ ویژگی loading :
تعیین می‌کند تصویر کی و چگونه بارگذاری شود

حالت Lazy:

فقط وقتی تصویر به نزدیکی صفحه می‌آید بارگذاری می‌شود (صرفه‌جویی در پهنای باند).

حالت eager:
بلافاصله با بارگذاری صفحه، همه تصاویر شروع به دانلود می‌کنند.

2️⃣ ویژگی decoding
تعیین می‌کند تصویر چطور رمزگشایی شود

حالت sync :
مرورگر هنگام دریافت تصویر، رندر صفحه را متوقف می‌کند تا تصویر رمزگشایی شود.

حالت async:
رمزگشایی تصویر به صورت غیربلاک‌کننده انجام می‌شود و رندر صفحه متوقف نمی‌شود.

به طور کلی 4 حالت داریم :

lazy + async:
بهترین حالت برای گالری‌ها و لیست‌های طولانی

lazy + sync
مناسب برای صفحاتی با تعداد کم تصویر، اما کمی کندتر در اسکرول کردن صفحه

eager + async
خوب برای تصویر اصلی یا تصاویر مهم، اما برای ۲۰ تصویر همزمان سنگین می‌شود

eager + sync
⚠️ بدترین حالت برای عملکرد و اسکرول روان، فقط برای تصاویر تک و حیاتی استفاده شود

<img alt="" src="" decoding="async" loading="lazy">


اطلاعات بیشتر در :😎👇
@DeveloperManifest
یک نمونه از استفاده از IF در CSS مدرن :

body {
background: if(
media(width > 850px): #9400D3; media(width > 700px): #4B0082;
media(width > 600px): #0000FF; media(width > 500px): #00FF00;
media(width > 400px): #FFFF00; media(width > 300px): #FF7F00;
else:
#ff0000
);
min-height: 100vh;
font-family: system-ui, -apple-system, sans-serif;
transition: background 0.3s ease;
}


اطلاعات بیشتر در :😎👇
@DeveloperManifest