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

تماس با من
@PhpWebDeveloper

🚀 علاقه‌مند به ساخت پروژه‌های تمیز، بهینه و حرفه‌ای
Download Telegram
یک نکته کاربردی در CSS :


@media (prefers-reduced-motion: reduce) {

}

با این مدیا کوئری شما می توانید کاهش انیمیشن (به درخواست کاربر یا تنظیمات سیستم عامل) را متوجه شوید.

#css
#ui
#ux

اطلاعات بیشتر در 😎👇
@developerManifest
در بازی The Farmer Was Replaced یک پهپاد را با استفاده از یک زبان ساده شبیه پایتون برنامه‌ریزی می کنید کنید تا کارهای مختلف کشاورزی را به طور کامل خودکار انجام دهد در غیر این صورت بسیار سخت خواهند بود. فقط با فشار دادن “execute” همه کارها انجام خواهد شد.

مشاهده در steam
دانلود بازی

#game
#python

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

@developerManifest
بی‌پروژه مانده‌ام چو کُدی فراموش
چون سایت بی‌کاربر، غریب و خاموش
نه مشتری آمد، نه کارفرما زنگ
ماندم به‌سان سرور، ولی بی‌درنگ!



کُدی ننوشته‌ام، پروژه ندارم هنوز
مانده‌ام حیران، مثل مرورگر فریز و سوز
گیت‌هام خالی است، بیکارم شب و نهار
مثل دکمه‌ی Submit، بی‌کلیک و بی‌کار!


#طنز_نویس
اطلاعات بیشتر 😎👇
@developermanifest
چه طور در PHP تصاویر مات درست کنیم؟ (با استفاده از gd)

کافی هست کلاس زیر را به پروژه اضافه کنید:
https://gist.github.com/saeedvir/49b858ad58b4b19b4591898c8948300b


نحوه استفاده :
$thumb = new ThumbBlur(
source: public_path('original.png'),
width: 640,
height: 480,
blur: 30,
quality: 45,
fileType: 'png',
blurIterations: 1,
outputDir: ''
);

$path = $thumb->generate();


⚠️ دقت کنید هرچه اندازه تصویر ساخته شده بزرگتر باشه ، زمان ایجاد تصویر هم طولانی تر میشه ، پس می توانید ساخت تصویر را در لاراول به صورت یک job تعریف کنید.


❇️ امکان استفاده در
Spatie Media Library
هست ؟
بله در کامنت ها یک مثال گذاشتم ببینید


اطلاعات بیشتر در 😎👇
@developerManifest
👍4👌1
چه طور از پکیج های کامپوزر به صورت لوکال استفاده کنیم ؟
https://dev.to/robertobutti/how-to-use-local-packages-in-composer-a-guide-for-php-developers-h89


#tip
#composer
#laravel


اطلاعات بیشتر در 😎👇
@developerManifest
2
GraphQL
یک زبان پرس‌وجو (Query Language) و همچنین یک محیط اجرایی برای APIهاست که توسط فیسبوک توسعه داده شد. هدف اصلی آن این است که کلاینت بتواند دقیقاً همان داده‌ای را که نیاز دارد درخواست کند؛ نه کمتر و نه بیشتر.

برای پیاده سازی در لاراول ، پکیج های زیادی هست. از جمله :

nuwave/lighthouse

rebing/graphql-laravel

mll-lab/laravel-graphiql

secundo/laravel-graphql-query-builder


https://lighthouse-php.com/master/getting-started/installation.html


#laravel
#tip
#package

اطلاعات بیشتر در 😎👇
@developerManifest
یک کتابخانه عالی برای کار با رنگ ها در PHP/Laravel

composer require tomloprod/colority


$hexColor = colority()->fromHex('#51B389');
$similarHexColor = colority()->getSimilarColor($hexColor);

$hslColor = colority()->textToColor("Hi, I'm Tomás");

$imageColors = colority()->getImageColors(
imagePath: __DIR__.'/image-colors.png',
desiredNumColors: 10
);


#laravel
#php
#package

اطلاعات بیشتر در 😎👇
@developerManifest
🔥2
تابع rescue در لاراول

تابع rescue() یک Helper Function برای مدیریت ایمن Exception‌ها است که اجازه می‌دهد بدون استفاده از try/catch صریح، یک عملیات پرریسک را اجرا کرده و در صورت بروز خطا، مقدار جایگزین (fallback) دریافت کنید.

rescue(callable $callback, mixed $rescue = null, bool $report = true)


$content = rescue(
fn () => file_get_contents(storage_path('data.json')),
'{}'
);

$userName = rescue(
fn () => User::findOrFail($id)->name,
fn () => 'Guest'
);


$result = rescue(
fn () => externalApiCall(),
null,
false
);

$price = rescue(
fn () => $product->prices->first()->amount,
0
);


#laravel
#tip

اطلاعات بیشتر در 😎👇
@developerManifest
👌1
پِرِستو: جایگزینی سریع و هوشمند برای Composer در PHP

پِرِستو یک برنامه مدیریت وابستگی برای PHP است که به‌عنوان جایگزینی سریع برای Composer طراحی شده است.

این ابزار با زبان Go نوشته شده و با فایل‌های composer.json و composer.lock کاملاً سازگار است.
سرعت نصب بسته‌ها در پِرِستو تا ۲۰ برابر بیشتر از Composer است،

در پروژه‌های بزرگ مانند Laravel، زمان نصب از ۴۲ ثانیه به ۳.۸ ثانیه کاهش یافته است.

https://github.com/paramientos/presto


#php
#tools

اطلاعات بیشتر در 😎👇
@developerManifest
👍4
Everyone loves PHP.😎
🔥1
ماگو (Mago) یک ابزار توسعه برای PHP است که با زبان Rust نوشته شده و قابلیت های زیر رو دارد :

Formatter

کدهای PHP شما را به صورت استاندارد و مرتب قالب‌بندی می‌کند.

Linter

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

Static Analyzer

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

Architectural Guard
قوانین وابستگی‌ها و ساختار پروژه را بررسی می‌کند.

نحوه نصب و استفاده
https://mago.carthage.software/guide/installation


راهنمای هوش مصنوعی
https://context7.com/websites/mago_carthage_software_guide?tab=chat


#php
#analyzer
#tools

اطلاعات بیشتر در 😎👇
@developerManifest
🔥1
راهنمای کامل هوک ها (Hook) در لایووایر

https://noscriptbinary.com/livewire/livewire-lifecycle-hooks-guide


#livewire
#laravel
#tip

اطلاعات بیشتر در 😎👇
@developerManifest
🔧‌ اگر با لاراول کار می‌کنی و دنبال راهی برای بررسی عملکرد و پروفایل‌گیری دقیق هستی، پروژه LaravelProfileProvider رو از دست نده!
این ابزار سبک و کاربردی بهت کمک می‌کنه تا رفتار اپلیکیشن‌ت رو بهتر بشناسی، مشکلات پنهان رو کشف کنی و تجربه کاربری رو بهینه‌سازی کنی.

📊‌ با قابلیت‌های قابل توسعه و طراحی تمیز، آماده‌ست تا وارد پروژه‌های
حرفه‌ای بشه.

📌قابلیت‌ها:
اندازه‌گیری زمان اجرا هر سرویس‌پراوایدر
🧠تحلیل مصرف حافظه در لحظه ثبت سرویس‌ها
🧪بررسی‌های تشخیصی برای کشف رفتارهای غیرمنتظره
🔍پروفایل‌گیری دقیق از فرآیند بوت شدن اپلیکیشن

📎‌ لینک گیت‌هاب:
github.com/saeedvir/LaravelProfileProvider


php artisan profile:providers --top=10



#laravel
#package
#optimize

اطلاعات بیشتر در 😎👇
@DeveloperManifest
👍1
اهراز هویت جدید در NIC.IR

اگر حساب کاربری nic.ir دارید و صاحب دامنه ملی هستید ، حتما پس از ورود به سامانه نسبت به تایید سطح 2 احراز هویت اقدام کنید.

برای تسریع در کار ، می توانید قبل از آن حتما نرم افزار "سامانه هدا" (در کافه بازار و مایکت هست) را در تلفن همراه خود نصب کنید.

برای کاربران IOS این برنامه سیبچه موجود هست.

فرایند احراز هویت توسط هوش مصنوعی انجام می شود و کمتر از 5 دقیقه وقت لازم دارد.

در طی فرایند نیاز به پرداخت 20 هزار تومان است.
روش های بهینه در Eloquent - بخش یک

این مطلب به طور خلاصه درباره استفاده از get و chunk گفته که پیشنهاد می کنم ببینید اما اگر بخواهم به صورت فارسی توضیح بدم :

مشکلِ استفاده از متد get برای داده های زیاد ، حجم زیاد اشغال حافظه است که راه حل جایگزین،استفاده از متدهای chunk و cursor هست.

User::where('active', true)
->chunk(1000, function ($users) {
foreach ($users as $user) {
// Process user
}
});

User::where('active', true)
->chunkById(1000, function ($users) {
foreach ($users as $user) {
// Guaranteed unique processing
}
});

اگر قصد دارید همزمان رکوردها را به‌روزرسانی کنید، بهتر است از chunkById استفاده کنید.

روش دیگر متد cursor هست که به‌جای بارگذاری دسته‌ای، می‌تواند داده‌ها را تک‌تک بخواند.
foreach (User::where('active', true)->cursor() as $user) {
// One model in memory at a time
}


🔗 مثال های بیشتر در بخش کامنت ها

#laravel
#optimize
#eloquent

.
🔥5
قطع و وصل دسترسی گوگل سرچ کنسول

@developerManifest
مفهوم Memoization در کش لاراول

Memoization
یک تکنیک بهینه‌سازی است که نتیجه یک عملیات را برای مدت زمان اجرای همان درخواست در حافظه PHP نگه می‌دارد تا در درخواست‌های بعدی نیاز به اجرای مجدد یا واکشی از منبع (مثلاً Redis) نباشد. این یعنی:

اولین بار مقدار داده از کش خوانده می‌شود (مثلاً Redis یا فایل).

در همان چرخه‌ی اجرای برنامه، بارهای بعدی مقدار از حافظه موقت (Memory) برگردانده می‌شود بدون اینکه به کش واقعی مراجعه شود.

این روش مخصوص زمانی است که در همان درخواست چند بار یک کلید کش را می‌خوانید و می‌خواهی تعداد درخواست‌ها به سرور کش را کاهش بدهید.

use Illuminate\Support\Facades\Cache;
//without Cache Store
$value = Cache::memo()->get('key');
//with Cache Store
$value = Cache::memo('redis')->get('key');


زمانی که از متدهایی استفاده می‌شود که مقدار را تغییر می‌دهند (مثل put,…):

مقدار Memoized (ذخیره در حافظه) مربوط به آن کلید فراموش (clear) می‌شود.

سپس تغییر به کش واقعی اعمال می‌شود.

در درخواست بعدی مقدار تازه از کش واقعی خوانده شده و دوباره در حافظه ذخیره می‌شود.

👈مثال در کامنت ها

@developerManifest
👍2
آموزش Cloudflare Tunnel برای به اشتراک گذاری Localhost


فرض کنید بخواهید یک پروژه که روی لوکال هاست هست را از طریق اینترنت دسترس پذیر کنید.

همین طور که اطلاع دارید ، یکی از راه ها ngrok بود.

این یک روش دیگر هست که با استفاده از cloudflare این کار رو می کنید.

ویدیو آموزشی
https://www.youtube.com/watch?v=etluT8UC-nw


https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/local-management/create-local-tunnel/

👈 ویدیو به زودی در کانال قرار می گیرد.

اطلاعات بیشتر 😎👇
@developerManifest

#آموزش
#نکته
#ویدیو
👍2