پروژه mvc با react و php و ruby

سلام من پروژه ای mvc که ویو با react و controller با php و model با ruby هست جایی گیر کردم
وقتی با cURL در php اطلاعات رو می خوام به ruby بفرستم ازم url میخواد ولی من می خوام به یک دایرکتوری بفرستم چکار کنم با php به یک فایل توی یک دایرکتوری بفرستم با cURL به یک دایرکتوری نمیشه کار نمیکنه
از اونور هم ruby برای وصل به دیتابیس ارور میده و require نمیشه با جم نصب میکنم میگه نصبه هر کاری کردم نشد
LoadError: cannot load such file – mysql2
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:inrequire’
from (irb):1
from /usr/bin/irb:11:in `’

در ضمن سرور من apache هست و توی زمپ و سیستم عاملم دبیان ۹ هست

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

حالا من چطوری با php به یک فایل تو یک دایرکتوری بفرستم نه url

من دقیقا متوچه منظورتون از فرستادن به دایرکتوری نمی شم.

به جای اینکه بهhttp://localhost/index.rb بفرستم به model/app.rb بفرستم

نمی تونین این کار رو بکنید (‌البته راه داره اما اصلا نباید رفت سراغش) . بجای باید اپ ruby رو پشت یه وب سرور قرار بدید و یه request بفرستید بهش. به همین خاطر عرض کردم که کاری که دارید انجام میدید اشتباه هست.

حالا اگه میتونید راهنمایی کنید

اگر جم mysql نصب نمیشه احتمالا هیچbuild tool ی برای mysql نصب نیست.
این مورد توی پست mysql2 همین سایت بحث شده.

منظور شما از فرستادن فایل چیه؟

اگر پروژه برای یادگیری هست خب فکر بدی نیست شاید شما یک راهی پیدا کنید که php و ruby در کنار هم بخش های مختلف یک mvc رو بوجود بیارند، اما فکر نمیکنم خیلی کار جالبی از آب در بیاد، شایدم بیاد. :crossed_fingers:

اگر یک پروژه واقعی هست خب میشه به جای اختراع چرخ از mvc های موجود مثل laravel یا rails استفاده کرد.

فایل نمی فرستم به یک فایل در یک مسیر اطلاعات بفرستم توی cURL به یک url اطلاعات میفرسته من میخوام اطلاعات رو به یک فایل تو پو شه مدل پست کنم اخه من نمیخوام از سرور خودم به خودم بفرستم که یک سرور بیشتر نیست

میتونین data رو به صورت یک رشته قابل parse در فرمت json یا yaml به صورت input به ruby بفرستید و در ruby اون data رو parse و پردازش کنید. راه های دیگه ای هم هست مثل buffer کردن و queue فایل در هر جایی از جمله در یک in memory database یا به صورت temp file که همه اینا بستگی به طراحی داره. باید مواظب race condition هم باشید.

اگر من بودم و مجبور میشدم از روبی به عنوان data و مثل شما از P…!HP به عنوان public api استفاده کنم احتمالا اپ data model رو روی یک middleware کوچک ولی قدرتمند مثل rack که همه منابع لازم برای http رو داره پیاده میکردم و ارتباط php و ruby رو هم روی دوتا port به صورت (inter process communication) HTTP REST برقرار میکردم. (خب این دیگه mvc نیست)

من میگم تو پی اچ پی چطوری اطلاعات رو به ruby پست کنم اونم به یک فایل تو دارکتوری نه به یک url

یا باید فایل تو یک پوشه ذخیره کنی که روبی از اون پوشه فایل و load کنه یا روبی یک سرور کنی که فایل با http بفرستی همون طور که @toomaj گفتند

1 پسندیده

من چنتا راه حل دادم .
عرض کردم که یک راهش temp file هست

1 پسندیده

اره درسته تو فایل JSON ادرس کلاس متد و ورودی ها رو ذخیره کنیم بعد روبی ازش بخونه ولی باید اطلاعات رمز نگاری بشند

راستی اون موقع روبی رو میشه کاری کرد حالت اماده باش باشه وقتی فایل json تغییر کرد خودکار کار کنه؟

کاش با html میشد خیلی خب بود ولی حیف تو وب سرور کار نمیکنه

html فقط برای نشانه گذاری(markup) هست و هیچ منطقی نداره.

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

خب اگر فقط به عنوان در برگیرنده ورودی ها به فرم نگاه کنیم شاید بشه گفت بله به صورت غیر مستقیم تا حدودی قابل قبوله، اما نه کاملا! فرم هم فقط بخشی از نشانه گذاری هست و اصلا کاری انجام نمیده، مرورگر بعد از دریافت submit اطلاعات فرم رو در رشته درخواست قرار میده و درخواستو میفرسته، در اصل این مرورگر هست که میدونه فرم یعنی چی و باید با ورودیها و گانفیگش چکار کنه.

اگر منظور شما از حالت آماده باش اینه که ruby به تغییر فایل خاصی روی دیسک واکنش نشون بده، بله میشه watch کنه اما خب در کل‌ من متوجه مشکلی شما قصد دارین حل کنید نمیشم، نه اینکه بخوام بگم کلا این کارو انجام ندین! فقط کنجکاو هستم که چرا باید انقدر سخت و پیچیده و غیر اصولی عمل بشه.
البته این اصل مشکل و محدودیت ها هستند که اصولی بودن یا نبودن چیزی رو تعیین میکنند، پس ممکنه من با توجه به اینکه اطلاع کافی ندارم از پروژه شما کاملا در اشتباه باشم :hugs:

به هر حال برای watch کردن فایل شاید پروژه زیر به کار بیاد