PDA

View Full Version : سرویسهای وب



ali_m_83
یک شنبه 08 آذر 1383, 20:53 عصر
سرویسهای وب :گیج:
با سلام
یه سوال آیا میشه با php سرویس وب نوشت اگه میشه چه جوری
من با #C میتونم ولی نمیدونم که چه طور میشه با php این کار رو کرد
چطور میشه یه فایل wsdl درست کرد
دوستانی که آشنا هستند خواهشا راهنمائی کنند
ممنون

Vahid_Nasiri
یک شنبه 08 آذر 1383, 21:06 عصر
http://www.xmlrpc.com/
http://keithdevens.com/software/xmlrpc

مهدی کرامتی
دوشنبه 09 آذر 1383, 02:32 صبح
زیاد به وب سرویس ها در PHP دل نبند.

کتابخانه های Soap موجود در PHP فقط بدرد استفاده در خود اسکریپتهای PHP میخورد و امکان اتصال به آنها از بیرون به دلیل باگهای موجود در آن وجود ندارد.

مگر اینکه راه حل دیگری پیدا شود.

oxygenws
دوشنبه 09 آذر 1383, 07:35 صبح
کتابخانه های Soap موجود در PHP فقط بدرد استفاده در خود اسکریپتهای PHP میخورد و امکان اتصال به آنها از بیرون به دلیل باگهای موجود در آن وجود ندارد.

چرا این حرف رو می زنید؟؟ دلیل؟ :) :wink:

مهدی کرامتی
دوشنبه 09 آذر 1383, 12:03 عصر
دلیل اینکه Envelope های SOAP ساخته شده توسط سازنده کتابخانه WSDL در PHP ناقص هستند و نمیتوان از محیط دیگری غیر از PHP وب سرویسهای نوشته شده در PHP را فراخوانی کرد.

برای تست این قضیه در PHP یک وب سرویس ساده بسازید که WSDL داشته باشد (دنبال کلمه WSDL در راهنمای PHP بگرد، یکی از توابع Soap اش این کار رو میکنه). سپس سعی کنید از محیطهای دیگر (مثلا دلفی، و یا Net.) این سرویسها را Import و فراخوانی کنید.

oxygenws
دوشنبه 09 آذر 1383, 13:54 عصر
آیا مشکلات شما خارج از لیست موجود در لینک زیر می باشد؟؟
لینک (http://bugs.php.net/search.php?search_for=&boolean=0&limit=All&order_by=&direction=ASC&cmd=display&status=All&bug_type%5B%5D=SOAP+related&php_os=&phpver=&assign=&author_email=&bug_age=0)
البته شاید این لینک شما رو سریعتر به نتیجه برسونه:
لینک (http://bugs.php.net/search.php?search_for=wsdl&boolean=0&limit=10&order_by=&direction=ASC&cmd=display&status=Open&bug_type%5B%5D=SOAP+related&php_os=&phpver=&assign=&author_email=&bug_age=0)

در غیر این صورت، ممنون می شم دقیقا مشکل برگشتی php رو توضیح بدید :) :wink:

توضیح:
تمامی باگ های گزارش شده (48 تا) در لینک بالا رفع شده اند، به جز یکی از اونها.

موفق باشید، امید

مهدی کرامتی
دوشنبه 09 آذر 1383, 14:39 عصر
این قضیه برای من خیلی مهمه، بنابراین:

1- این باگها در کدوم ورژن PHP یا کتابخانه Soap رفع شده اند و فایلهای جدید رو از کجا میتونم بگیرم؟

2- اگر ممکنه یک وب سرویس ساده با 1 متد که یک رشته رو بگیره و همون رو برگردونه (فرض کنید نام این تابع EchoString باشد) برای من با این کتابخانه جدید بنویسید و در جایی آپلود کنید تا من تستش کنم.

پیشاپیش از توجه شما متشکرم.

oxygenws
دوشنبه 09 آذر 1383, 16:09 عصر
سلام،
1- تاریخ انتشار باگ و تاریخ (یا نگارش) رفع اون در همون لینک وجود داره.

به عنوان مثال باگ زیر:
When Using WSDL, SoapServer doesn't handle private or protected properties

در تاریخ و ساعت 2004-11-29 05:45:50 گزارش شده و در نسخه CVS به نگارش 5CVS-2004-11-29 (dev) رفع و منتشر شده. (توجه کنید که تو یک روز رفع شده :) )

توسعه های منتشر نشده PHP رو می تونید از لینک زیر بگیرید:
http://snaps.php.net

2- برای کار کردن با این نگارش، من باید PHP منتشر نشده رو روی سرور کامپایل کنم که به دلیل منتشر نشدن نهایی، از کامپایل کردن اون معذورم :) (فقط یک بار چنین کاری کردم، که اون هم اون مورد امنیتی ای بود که اینپرایز گفت، البته فردای همون روز نسخه اصلی PHP منتشر شد)

موفق باشید، امید :)

مهدی کرامتی
دوشنبه 09 آذر 1383, 16:32 عصر
مگه پشتیبانی Soap توسط یک شخص ثالث به PHP (و البته بصورت سورس PHP و نه C) اضافه نشده؟

oxygenws
سه شنبه 10 آذر 1383, 08:32 صبح
نه، تا اونجایی که من می دونم soap ابتدا در بسته های pecl منتشر شد که بسته های (یا بهتر بگم، "توسعه های") pecl با C نوشته می شن.

منظورتون از شخص ثالث چیه؟؟ سیستم open source هستش و به صورت CVS توسعه داده می شه. شخص ثالث مفهوم خاصی پیدا نمی کنه :) من و شما به راحتی نمی تونیم وارد تیم توسعه عظیم PHP بشیم، چند نفر باید به شما رای بدن و وقتی رای دادن و شما قبول شدید، یه سری امکانات به شما داده می شه که راحت تر، بهتر و سیستماتیک تر بتونید PHP رو توسعه بدید :)

توسعه های pear خیلی چیپ!! (سبک!!) و احمقانه است. درسته که خیلی کار ها رو راحت تر کرده، ولی یک برنامه نویس حرفه ای نباید از اونها استفاده کنه. توسعه های pear با php توسعه داده می شن. اما توسعه های pecl خیلی ساخت یافته تر و تحت zend engine یا php engine توسط C توسعه داده می شن که باید همراه PHP کامپایل بشن (در لینوکس)

موفق باشید، امید

مهدی کرامتی
سه شنبه 10 آذر 1383, 11:22 صبح
منظورتون از شخص ثالث چیه؟؟
منظور توسعه دهنده ای است که عضو تیم اصلی نیست.

oxygenws
سه شنبه 10 آذر 1383, 13:36 عصر
با اون توضیحی که تو پست قبلی دادم..... یا هیچ شخص ثالثی نداریم!! یا اینکه به جز 3-4 نفر توسعه دهنده اصلی، مابقی می شن شخص ثالث!!!

به هر حال، خیلی از این شخص ثالث ها (شاید تمامشون) به سایت PHP دسترسی مستقیم دارند (به جاهایی که من و شما دسترسی نداریم) و می تونند ساپورت کنند و ایمیل های مختلف از PHP بگیرند و ...

Vahid_Nasiri
سه شنبه 10 آذر 1383, 13:53 عصر
هر چند xmlrpc که در اولین پست این تاپیک لینکش داده شد، دقیقا مطابق تعریف یک وب سرویس نیست ولی ... همان نیازها را می شود اینجا هم به صورت خوبی پیاده سازی کرد.

برای استفاده از آن با استفاده از یک کلاینت دات نت :http://www.xml-rpc.net/
http://www.xml-rpc.net/faq/xmlrpcnetfaq.html
http://www.xml-rpc.net/doc/xmlrpcsamples.html

http://www.xml-rpc.net/doc/MathAppVS.jpg