کانفیگ و پیادهسازی Web Push Notification بدون Firebase
* از اونجایی که داخل ایران نمیتونیم از سرویسهایی مثل Firebase Cloud Messaging (FCM) استفاده کنیم، تصمیم گرفتم خودم سیستم Web Push Notification رو پیادهسازی کنم!
* در سمت کلاینت (Next.js) از یک Service Worker استفاده کردم تا نوتیفها حتی زمانی که تب بسته هستش هم نمایش داده بشه.
کاربر کافیه اپ رو به Home Screen اضافه کنه و بعد از اولین ورود، مجوز ارسال نوتیفیکیشن رو تأیید کنه؛
در این مرحله، مرورگر بهصورت خودکار یک subnoscription اختصاصی تولید میکنه که شامل endpoint، public key و auth token هست و به سرور ارسال میشه.
* در سمت بکاند (Node.js + Express) از پکیج web-push استفاده کردم تا با کلیدهای VAPID نوتیفها رو بهصورت مستقیم و امن برای مرورگر کاربران ارسال کنم.
هر endpoint بهصورت یکتا در دیتابیس ذخیره میشه و سرور میتونه به تمام کاربران یا فقط به یک کاربر خاص نوتیف بفرسته
ویژگیها:
ارسال نوتیف زنده و امن با کلیدهای VAPID
مدیریت subscribe / unsubscribe کاربران
پشتیبانی کامل از PWA و Service Worker
قابل تنظیم برای آیکون، عنوان و لینک دلخواه
مستقل از Firebase و بدون محدودیت
میتونید نسبت به کانفیگ پروژتون setup کنید
* خب شاید بپرسید اگه کاربر آفلاین باشه چی میشه…
خیلی ساده بخوام بگم وقتی کاربر آفلاین باشه و شما بخواید براش پوش نوتیفیکیشن بفرستید، Push Service مثل گوگل یا مرورگر، پیام رو میذاره تو صف (queue) و وقتی کاربر دوباره آنلاین شد، نوتیفیکیشن روی صفحهش ظاهر میشه.
demo: https://sadegh-nextjs-push-notification.liara.run/
برای تست، اپ رو به صفحه اصلی اضافه کنید و دسترسی رو اکسپت کنید و از فرمی که داخل اپ هستش نوتیف ارسال کنید
repo: https://github.com/sadegh1379/push-notification
@DevTwitter | <Sadegh Akbari/>
* از اونجایی که داخل ایران نمیتونیم از سرویسهایی مثل Firebase Cloud Messaging (FCM) استفاده کنیم، تصمیم گرفتم خودم سیستم Web Push Notification رو پیادهسازی کنم!
* در سمت کلاینت (Next.js) از یک Service Worker استفاده کردم تا نوتیفها حتی زمانی که تب بسته هستش هم نمایش داده بشه.
کاربر کافیه اپ رو به Home Screen اضافه کنه و بعد از اولین ورود، مجوز ارسال نوتیفیکیشن رو تأیید کنه؛
در این مرحله، مرورگر بهصورت خودکار یک subnoscription اختصاصی تولید میکنه که شامل endpoint، public key و auth token هست و به سرور ارسال میشه.
* در سمت بکاند (Node.js + Express) از پکیج web-push استفاده کردم تا با کلیدهای VAPID نوتیفها رو بهصورت مستقیم و امن برای مرورگر کاربران ارسال کنم.
هر endpoint بهصورت یکتا در دیتابیس ذخیره میشه و سرور میتونه به تمام کاربران یا فقط به یک کاربر خاص نوتیف بفرسته
ویژگیها:
ارسال نوتیف زنده و امن با کلیدهای VAPID
مدیریت subscribe / unsubscribe کاربران
پشتیبانی کامل از PWA و Service Worker
قابل تنظیم برای آیکون، عنوان و لینک دلخواه
مستقل از Firebase و بدون محدودیت
میتونید نسبت به کانفیگ پروژتون setup کنید
* خب شاید بپرسید اگه کاربر آفلاین باشه چی میشه…
خیلی ساده بخوام بگم وقتی کاربر آفلاین باشه و شما بخواید براش پوش نوتیفیکیشن بفرستید، Push Service مثل گوگل یا مرورگر، پیام رو میذاره تو صف (queue) و وقتی کاربر دوباره آنلاین شد، نوتیفیکیشن روی صفحهش ظاهر میشه.
demo: https://sadegh-nextjs-push-notification.liara.run/
برای تست، اپ رو به صفحه اصلی اضافه کنید و دسترسی رو اکسپت کنید و از فرمی که داخل اپ هستش نوتیف ارسال کنید
repo: https://github.com/sadegh1379/push-notification
@DevTwitter | <Sadegh Akbari/>
❤26👍6🍌5🔥4
در گیتهاب Typenoscript به محبوبترین زبان برنامهنویسی تبدیل شده و از پایتون جلو زده!
@DevTwitter | <Masoud Majidi/>
@DevTwitter | <Masoud Majidi/>
🔥117🍌23❤5👍4
اپلیکیشن ریموت دسکتاپ اوپن سورس، به عنوان جایگزین TeamViewer و AnyDesk
https://github.com/rustdesk/rustdesk
@DevTwitter | <Mohammad/>
https://github.com/rustdesk/rustdesk
@DevTwitter | <Mohammad/>
👍38❤5
درود، امیدوارم حالتون خوب باشه
یه پکیج جدید داخل NPM توسعه دادم به اسم noscript-connector و خوشحال میشم یه نگاه بندازین
npmjs.com/package/noscript-connector
github.com/Tariux/Node-Script-Connector
اگر تا حالا به این فکر کردین که بشه اسکریپت های زبان های دیگه رو از طریق JavaScript اجرا کرد، این پکیج دقیقا برای همینه. Script Connector یه ابزار سبک و دقیق با معماری تمیزه که بدون هیچ بخش اضافهای طراحی شده تا سریع، قابل اعتماد و کاملا قابل تنظیم باشه.
میتونین همه چیز رو طبق نیاز خودتون پیکربندی کنین، و از اون طرف متریک های دقیقی از تمام بخش های در حال اجرا دریافت کنین.
یه تیکه کد ساده از نحوه استفادش: (در نظر بگیرید کانفیگ های خیلی بیشتری از این داخل پکیج موجوده)
اگر خواستین نمونه کامل تر یا داکیومنتش رو ببینین، خوشحال میشم گیتهاب رو چک کنین.
@DevTwitter | <madman/>
یه پکیج جدید داخل NPM توسعه دادم به اسم noscript-connector و خوشحال میشم یه نگاه بندازین
npmjs.com/package/noscript-connector
github.com/Tariux/Node-Script-Connector
اگر تا حالا به این فکر کردین که بشه اسکریپت های زبان های دیگه رو از طریق JavaScript اجرا کرد، این پکیج دقیقا برای همینه. Script Connector یه ابزار سبک و دقیق با معماری تمیزه که بدون هیچ بخش اضافهای طراحی شده تا سریع، قابل اعتماد و کاملا قابل تنظیم باشه.
میتونین همه چیز رو طبق نیاز خودتون پیکربندی کنین، و از اون طرف متریک های دقیقی از تمام بخش های در حال اجرا دریافت کنین.
یه تیکه کد ساده از نحوه استفادش: (در نظر بگیرید کانفیگ های خیلی بیشتری از این داخل پکیج موجوده)
const { ScriptConnector } = require('noscript-connector');
const connector = new ScriptConnector({
noscripts: {
math: './noscripts/math.py',
}
});
connector.api.math.add(10, 5);اگر خواستین نمونه کامل تر یا داکیومنتش رو ببینین، خوشحال میشم گیتهاب رو چک کنین.
@DevTwitter | <madman/>
❤13👍2👎1🔥1
یبار داشتم با TRPC ی اپ میساختم ولی نتونستم فایل آپلود اوکی کنم پس با Express ی سرویس هلپر ساختم که بتونه با اپ ارتباط بگیره و فایل آپلود اوکی کنه.
https://github.com/Afrachin/upload-helper
@DevTwitter | <Amirparsa Baghdadi/>
https://github.com/Afrachin/upload-helper
@DevTwitter | <Amirparsa Baghdadi/>
1👎10❤8👍3🔥1
یک اپلیکیشن نوشتم که محیط چت بین کاربران و پشتیبانان وبسایت رو فراهم میکنه. تکنولوژی هایی که استفاده کردم django - vuejs - websocket هستش. سعی کردم تا اونجایی که میشه حالت کاستومایز کردن برای بخش مختلف پیاده کنم و همه شون رو توی آدرس گیتهابم لیست کردم.
https://github.com/grand-kaveh/django-chat-app/
https://pypi.org/project/django-chatapp/2.1/
@DevTwitter|<Kaveh/>
https://github.com/grand-kaveh/django-chat-app/
https://pypi.org/project/django-chatapp/2.1/
@DevTwitter|<Kaveh/>
❤23👎22👍6🔥6
زمانی که این پست رو دیدم خواستم json schema builder که برای یک پروژه زده بودم رو اوپن سورس کنم که تا الان وقتش رو پیدا نکرده بودم. تقریبا تمام استاندارد های لازم برای ساخت schema رو پشتیبانی میکنه.
playground:
https://behkha.github.io/vueson/
github:
https://github.com/behkha/vueson
@DevTwitter | <Behzad/>
playground:
https://behkha.github.io/vueson/
github:
https://github.com/behkha/vueson
@DevTwitter | <Behzad/>
👍13🔥1
#کدبوک
یه منبع تصویری و ساده برای یادگیری لینوکس با توزیع Linux Mint:
- آموزش مرحلهبهمرحله کار با محیط دسکتاپ و خط فرمان
- مدیریت فایلها، کاربران، نرمافزارها و تنظیمات سیستم
- معرفی مفاهیم پایه لینوکس به زبانی روان و قابلدرک
- مناسب برای تازهکارهایی که میخوان بهسرعت با لینوکس راحت بشن
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
یه منبع تصویری و ساده برای یادگیری لینوکس با توزیع Linux Mint:
- آموزش مرحلهبهمرحله کار با محیط دسکتاپ و خط فرمان
- مدیریت فایلها، کاربران، نرمافزارها و تنظیمات سیستم
- معرفی مفاهیم پایه لینوکس به زبانی روان و قابلدرک
- مناسب برای تازهکارهایی که میخوان بهسرعت با لینوکس راحت بشن
* فایل PDF این کتاب رو میتونید از کانال DevBooks که لینکش توی بیو هست دانلود کنید.
@DevTwitter
❤12🔥1
خبر خوب دوستان! متا با روش Free Transformer مسیر پردازش مدلهای زبانی رو پویا کرده: دقت بالاتر تو استدلال زنجیرهای با مصرف کمتر محاسبات! انعطاف و کارایی بهینه در بنچمارکها!
https://the-decoder.com/metas-free-transformer-introduces-a-new-approach-to-llm-decision-making/
@DevTwitter | <melika/>
https://the-decoder.com/metas-free-transformer-introduces-a-new-approach-to-llm-decision-making/
@DevTwitter | <melika/>
👍11👎2
اگر میخواید n8n رو به واتساپ وصل کنید من یک پروژه کوچیک واسه اینکار دارم:
https://github.com/onionj/whatsapp-api
اینجوریه که هر پیامی که توی واتساپ بیاد رو میفرسته برای وبهوک n8n
و یک اندپوینت هم داره که هرجا نیاز داشته باشی به کاربر پیام بفرستی اونو صدا میزنی، ستاپش خیلی راحته...
@DevTwitter | <saman nezafat/>
https://github.com/onionj/whatsapp-api
اینجوریه که هر پیامی که توی واتساپ بیاد رو میفرسته برای وبهوک n8n
و یک اندپوینت هم داره که هرجا نیاز داشته باشی به کاربر پیام بفرستی اونو صدا میزنی، ستاپش خیلی راحته...
@DevTwitter | <saman nezafat/>
👍15👎7🔥4❤1
دیروز یه پست از برتنی مولر خوندم که واقعاً ذهنم رو درگیر کرد.
موضوعش «هک شدن مرورگر ChatGPT Atlas فقط در ۴۸ ساعت» بود.
مرورگر هوش مصنوعی OpenAI رو محققها تونستن با دستورهای پنهان در متن سفید و HTML هک کنن.
روشهای قدیمی BlackHat دوباره برگشتن، فقط این بار قربانی انسان نیست… هوش مصنوعیه!
برتنی میگه مشکل اینجاست که LLM نمیتونه فرق بین محتوای واقعی و دستور مخرب رو تشخیص بده.
و این یعنی:
الان کل صفحه مهمه، از کامنت HTML تا متن سفید.
محتوای UGC (نظرات و دیدگاهها) میتونه دروازهی حمله بشه.
مرورگرهای هوش مصنوعی در برابر تهدیدات امنیتی هنوز خیلی ضعیفن.
اما کامنت رند فیشکین از اونم جالبتر بود:
میگه شاید هدف ChatGPT از ساخت مرورگر اصلاً «مرور وب» نبوده…
بلکه یه «اسب تروجان» بوده برای اینکه سایتها دیگه نتونن جلوی خزندهش رو بگیرن.
چون اگه بخوای دسترسی Atlas رو ببندی، در واقع داری جلوی کاربر واقعی مرورگر رو هم میگیری.
به نظرم این نقطهی خطرناکیه که سئو، امنیت و مالکیت داده با هم برخورد میکنن.
مرورگرها دیگه فقط نمیخونن، تصمیم میگیرن ، و گاهی شاید بر خلاف منافع صاحب محتوا.
@DevTwitter | <Shahram Rahbari/>
موضوعش «هک شدن مرورگر ChatGPT Atlas فقط در ۴۸ ساعت» بود.
مرورگر هوش مصنوعی OpenAI رو محققها تونستن با دستورهای پنهان در متن سفید و HTML هک کنن.
روشهای قدیمی BlackHat دوباره برگشتن، فقط این بار قربانی انسان نیست… هوش مصنوعیه!
برتنی میگه مشکل اینجاست که LLM نمیتونه فرق بین محتوای واقعی و دستور مخرب رو تشخیص بده.
و این یعنی:
الان کل صفحه مهمه، از کامنت HTML تا متن سفید.
محتوای UGC (نظرات و دیدگاهها) میتونه دروازهی حمله بشه.
مرورگرهای هوش مصنوعی در برابر تهدیدات امنیتی هنوز خیلی ضعیفن.
اما کامنت رند فیشکین از اونم جالبتر بود:
میگه شاید هدف ChatGPT از ساخت مرورگر اصلاً «مرور وب» نبوده…
بلکه یه «اسب تروجان» بوده برای اینکه سایتها دیگه نتونن جلوی خزندهش رو بگیرن.
چون اگه بخوای دسترسی Atlas رو ببندی، در واقع داری جلوی کاربر واقعی مرورگر رو هم میگیری.
به نظرم این نقطهی خطرناکیه که سئو، امنیت و مالکیت داده با هم برخورد میکنن.
مرورگرها دیگه فقط نمیخونن، تصمیم میگیرن ، و گاهی شاید بر خلاف منافع صاحب محتوا.
@DevTwitter | <Shahram Rahbari/>
🔥44👍11👎1
This media is not supported in your browser
VIEW IN TELEGRAM
این Grub Theme رو امروز دیدم که خیلی جالب طراحی شده که در موقع Boot شدن، وقتی می خوای سیستم عامل رو انتخاب کنی، Morpheus سیستم عامل رو پیشنهاد میده.
باحالیش اینه که ویندوز همون قرص آبی هست
https://github.com/Priyank-Adhav/Matrix-Morpheus-GRUB-Theme
@DevTwitter | <VAHID NAMENI/>
باحالیش اینه که ویندوز همون قرص آبی هست
https://github.com/Priyank-Adhav/Matrix-Morpheus-GRUB-Theme
@DevTwitter | <VAHID NAMENI/>
❤68🍌8👍4👎1
من اولین دپلوی که کردم رو داکیومنت کردم اگر دوست داشتید نگاهش کنید هر مشکلی توی فهم من یا درک من بود بگید روش وقت بزارم درستش کنم.
https://github.com/sysp0/devops_learning/blob/main/docs/kubernetes/01_first_step/document.md
@DevTwitter | <Reza Ghasemi/>
https://github.com/sysp0/devops_learning/blob/main/docs/kubernetes/01_first_step/document.md
@DevTwitter | <Reza Ghasemi/>
🔥27❤5👍5👎3
لیستی از چیز های جالب بیگ دیتا، جمعه چکش کنید چون یه روز کاری از وقتتون رو میگیره !
http://github.com/oxnr/awesome-bigdata
@DevTwitter | <Nimo/>
http://github.com/oxnr/awesome-bigdata
@DevTwitter | <Nimo/>
👍20🔥1
یه سوال جدی: واقعاً Xdebug توی پروژههای Laravel لازمه؟ یا فقط یه ابزار سنگین و اعصابخوردکنه که آدمو از تمرکز میندازه؟
راستش من چند بار باهاش کار کردم... مخصوصاً وقتی میخواستم بفهمم دقیقاً چی توی یه chain از متدها داره اتفاق میافته. اما بعد از چند ساعت config و تنظیمات، حس کردم همون dd(), dump یا حتی DB::enableQueryLog() خودشون برای ۹۰٪ مواقع کافیان.
یعنی واقعاً چند بار شده بخوای بری مرحله به مرحله ببینی چی توی Auth::attempt() یا Eloquent::save() میگذره؟
معمولاً یه dd($user) وسط کار میذاری و تموم.
از اون طرف Xdebug خیلی دقیقتره، ولی سنگین هم هست. روی docker مخصوصاً یه لگ عجیب ایجاد میکنه. اگه واقعاً به اون سطح از trace نیاز داری، شاید داری با یه مشکل طراحی بزرگتر دست و پنجه نرم میکنی.
️ خلاصه نظر من اینه:
این Xdebug برای لحظاتی که داری core مینویسی یا میخوای واقعاً بفهمی PHP در پسزمینه چیکار میکنه عالیه،
ولی برای یه پروژه معمولی لاراولی، dd() همچنان پادشاهه!
@DevTwitter | <Atefe Ali asgariyan/>
راستش من چند بار باهاش کار کردم... مخصوصاً وقتی میخواستم بفهمم دقیقاً چی توی یه chain از متدها داره اتفاق میافته. اما بعد از چند ساعت config و تنظیمات، حس کردم همون dd(), dump یا حتی DB::enableQueryLog() خودشون برای ۹۰٪ مواقع کافیان.
یعنی واقعاً چند بار شده بخوای بری مرحله به مرحله ببینی چی توی Auth::attempt() یا Eloquent::save() میگذره؟
معمولاً یه dd($user) وسط کار میذاری و تموم.
از اون طرف Xdebug خیلی دقیقتره، ولی سنگین هم هست. روی docker مخصوصاً یه لگ عجیب ایجاد میکنه. اگه واقعاً به اون سطح از trace نیاز داری، شاید داری با یه مشکل طراحی بزرگتر دست و پنجه نرم میکنی.
️ خلاصه نظر من اینه:
این Xdebug برای لحظاتی که داری core مینویسی یا میخوای واقعاً بفهمی PHP در پسزمینه چیکار میکنه عالیه،
ولی برای یه پروژه معمولی لاراولی، dd() همچنان پادشاهه!
@DevTwitter | <Atefe Ali asgariyan/>
👍16❤5👎2🔥1
اخیرا یه تسکی رو برای شرکتی انجام دادم که یک CRUD کوچولو هستش و با React 18 و Typenoscript نوشته شده
پروژه رو از طریق لینک زیر میتونید بصورت لایو ببینید:
https://listifyrepo.netlify.app
برای دیدن کدها هم میتونید به این لینک سر بزنید:
https://github.com/majidvz/listify
@DevTwitter | <Majid/>
پروژه رو از طریق لینک زیر میتونید بصورت لایو ببینید:
https://listifyrepo.netlify.app
برای دیدن کدها هم میتونید به این لینک سر بزنید:
https://github.com/majidvz/listify
@DevTwitter | <Majid/>
❤20👎11🍌5🔥3
چرا از pnpm به جای npm استفاده کنیم؟
جوابش سادست. فرض کنید ده تا پروژه روی کامپیوتر خودتون در دست توسعه دارید که از node modules استفاده میکنن.
️ قطعا بین این ده تا پروژه تعداد زیادی پکیج مشابه و مشترکه، اما اگر از npm استفاده کنید:
۱- همه پکیج ها توی هر یک از پروژه ها هر بار نصب میشن و نتیجتا شما پکیج های مشابه رو برا هر پروژه دوباره و دوباره دانلود میکنید.
۲- همچنین نهایتا روی دیسکتون از هر پکیج مشترک ده تا کپی خواهید داشت که بهینه نیست.
حالا pnpm چیکار میکنه؟
میاد و به جای این که این ماژول هارو هر بار توی فولدر هر پروژه ذخیره کنه، توی یک دایرکتوری مرکزی ذخیره میکنه و صرفا به هر پروژه ای که به اون دپندنسی نیاز داره لینکش میکنه.
اینطوری شما برای پروژه های مختلف مجبور نیستید پکیج هایی که قبلا یک بار نصبشون کردید رو مجددا نصب کنید و یک کپی جدید ازش روی دیسکتون ذخیره کنید، در نتیجه از نظر مدیریت حافظه و سرعت نصب قطعا جلو میوفتید.
البته مزایای دیگه ای هم داره که میتونید تو داکیومنت خود pnpm بخونید:
https://pnpm.io/pnpm-vs-npm
@DevTwitter | <Omid Baharifar/>
جوابش سادست. فرض کنید ده تا پروژه روی کامپیوتر خودتون در دست توسعه دارید که از node modules استفاده میکنن.
️ قطعا بین این ده تا پروژه تعداد زیادی پکیج مشابه و مشترکه، اما اگر از npm استفاده کنید:
۱- همه پکیج ها توی هر یک از پروژه ها هر بار نصب میشن و نتیجتا شما پکیج های مشابه رو برا هر پروژه دوباره و دوباره دانلود میکنید.
۲- همچنین نهایتا روی دیسکتون از هر پکیج مشترک ده تا کپی خواهید داشت که بهینه نیست.
حالا pnpm چیکار میکنه؟
میاد و به جای این که این ماژول هارو هر بار توی فولدر هر پروژه ذخیره کنه، توی یک دایرکتوری مرکزی ذخیره میکنه و صرفا به هر پروژه ای که به اون دپندنسی نیاز داره لینکش میکنه.
اینطوری شما برای پروژه های مختلف مجبور نیستید پکیج هایی که قبلا یک بار نصبشون کردید رو مجددا نصب کنید و یک کپی جدید ازش روی دیسکتون ذخیره کنید، در نتیجه از نظر مدیریت حافظه و سرعت نصب قطعا جلو میوفتید.
البته مزایای دیگه ای هم داره که میتونید تو داکیومنت خود pnpm بخونید:
https://pnpm.io/pnpm-vs-npm
@DevTwitter | <Omid Baharifar/>
❤57👍16👎3🔥1
آپدیت تازه برای PHP کارها
معرفی SDK رسمی PHP برای MCP (Model Context Protocol) چند هفته پیش، در ۵ سپتامبر ۲۰۲۵ توسط The PHP Foundation با همکاری تیم MCP آنتروپیک و Symfony. یعنی بالاخره یک پیادهسازی مرجع، فریمورکاگنوستیک و آمادهٔ تولید داریم تا اپهای AI رو مثل وصلکردن رابط «USB-C» به ابزارها و دادههای بیرونی داشته باشیم
چرا هیجانانگیزه؟
مرجع واحد و قابلاعتماد برای کل اکوسیستم PHP
نگهداری توسط تیم Symfony + مشارکت جامعه
اتفاقاتی که میفته:
ساخت Agent/Tool با PHP به راحتی
دیدهشدن جدیتر PHP توی فیلد AI
فرصت برای ادغامهای رسمی با Laravel/WordPress/Drupal/Laminas و…
اگه براتون جالبه میتونید خودتون یه سر به مقاله بزنید:
https://thephp.foundation/blog/2025/09/05/php-mcp-sdk/
@DevTwitter | <Reza Fereydouni/>
معرفی SDK رسمی PHP برای MCP (Model Context Protocol) چند هفته پیش، در ۵ سپتامبر ۲۰۲۵ توسط The PHP Foundation با همکاری تیم MCP آنتروپیک و Symfony. یعنی بالاخره یک پیادهسازی مرجع، فریمورکاگنوستیک و آمادهٔ تولید داریم تا اپهای AI رو مثل وصلکردن رابط «USB-C» به ابزارها و دادههای بیرونی داشته باشیم
چرا هیجانانگیزه؟
مرجع واحد و قابلاعتماد برای کل اکوسیستم PHP
نگهداری توسط تیم Symfony + مشارکت جامعه
اتفاقاتی که میفته:
ساخت Agent/Tool با PHP به راحتی
دیدهشدن جدیتر PHP توی فیلد AI
فرصت برای ادغامهای رسمی با Laravel/WordPress/Drupal/Laminas و…
اگه براتون جالبه میتونید خودتون یه سر به مقاله بزنید:
https://thephp.foundation/blog/2025/09/05/php-mcp-sdk/
@DevTwitter | <Reza Fereydouni/>
🍌12👍10🔥5❤3