পিএইচপি-তে আপনি কীভাবে একটি ডাব্লুএসডিএল ক্যাশে সাফ করতে পারেন?


91

মাধ্যমে php_info()যেখানে wsdl ক্যাশে অনুষ্ঠিত হয় ( /tmp), কিন্তু আমি অগত্যা যদি এটা wsdl দিয়ে শুরু হওয়া সকল ফাইল মুছে দিন নিরাপদ জানি না।

হ্যাঁ, আমার থেকে সমস্ত কিছু মুছতে সক্ষম হওয়া উচিত/tmp , তবে আমি জানি না যে আমি যদি কোনও ডাব্লুএসডিএল ফাইল মুছে ফেলি তবে এর ফলে আর কী ঘটতে পারে।

উত্তর:


200

আপনি ডাব্লুএসডিএল ক্যাশে ফাইলগুলি নিরাপদে মুছতে পারেন। আপনি যদি ভবিষ্যতে ক্যাচিং প্রতিরোধ করতে চান তবে ব্যবহার করুন:

ini_set("soap.wsdl_cache_enabled", 0);

বা গতিশীল:

$client = new SoapClient('http://somewhere.com/?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE) );

31
আমি বিশ্বাস করি যে 0 টি হার্ডকোডিংয়ের পরিবর্তে সোপক্লিয়েন্ট ব্যবহার করার সময়, আপনি প্রস্তাবিত ধ্রুবক WSDL_CACHE_NONE ব্যবহার করার পরামর্শ দেওয়া হয়। Php.net/manual/en/soapclient.soapclient.php
ড্যান বার্টন

যাইহোক আমি ক্যাশে ফিশনিটিলিটিটি যেমন তা হতে পারি তেমনি কিছু সময়ের জন্য সমস্ত ক্যাশে কীভাবে অবৈধ করে তোলে? আমরা নেটগুলিতে সহজেই এই জিনিসগুলি করতে পারি
কামরান শহীদ

এই সমাধানটি ক্যাশে সাফ করে তবে এটি কার্য সম্পাদনের জন্য একটি বাণিজ্যও।
নাবিল আরশাদ

4
আসলে, তবে ক্যাশে সাফাই যদিও / tmp -র পরিবর্তে ফাইল সরানো হয়েছে আমি এখনও wsdl ক্যাশে বিষয় পেয়ে ছিল যতক্ষণ না আমি এই সেটিংটি ব্যবহৃত ini_set('soap.wsdl_cache_ttl', 1);: এখানে পাওয়া - এবং দিন এটা এক ঘন্টার জন্য বসতে stackoverflow.com/questions/323561/...
জশুয়া Fricke

27

সার্ভারে wsdl*আপনার /tmpফোল্ডারে থাকা সমস্ত ফাইল সরান ।

ডাব্লুএসডিএল ফাইলগুলি php.ini এ সংজ্ঞায়িত সমস্ত ক্যাশে ফাইলগুলির জন্য আপনার ডিফল্ট স্থানে ক্যাশে করা হয়। আপনার সেশন ফাইল হিসাবে একই অবস্থান।


আপনি কি দয়া করে আমাকে জানান যে এই টিএমপি ফোল্ডারটি কোথায় থাকে?
কামরান শহীদ

4
এটি / টেম্পেপ এ পিএইচপি কোনও আলাদা অবস্থান ব্যবহার করতে সেট করা হতে পারে, আপনি পিএইচপি-আই | করে এটি সনাক্ত করতে পারেন grep wsdl_cache_dir
সিলিকনরোক স্টার

এটা আমার জন্য ছিল। দ্রষ্টব্য: আমি ডকার-কমপোজ ব্যবহার করছিলাম , সুতরাং নতুন ডকার-রচনা তৈরির আগে আমাকে ডকর-রচনা << কন্টেইনার> চালাতে হয়েছিল
conradkleinespel

আপনি "পিএইচপি-আই | গ্রেপ সোপ.ইউএসডিএল_ক্যাচি_ডির" দিয়ে ডাব্লুএসডিএল ক্যাশে ফোল্ডারটি সনাক্ত করতে পারেন
ড্যানিয়েল মুলার

13

আপনি যদি ইতিমধ্যে কোড স্থাপন করেছেন বা কোনও কনফিগারেশন পরিবর্তন করতে না পারেন, আপনি wsdl থেকে সমস্ত টেম্প ফাইলগুলি সরিয়ে ফেলতে পারেন:

rm /tmp/wsdl-*

4
এটি আমিও করি, অবশ্যই আপনি WSDL_CACHE_DISK ব্যবহার করছেন
কার্লোসভিনি

উইন্ডোজ এ এটি সি:
mp

12

আমি ডাব্লুএসডিএল ইউআরএলে ক্যাশে-বাস্টার ব্যবহার করার পরামর্শ দিচ্ছি।

আমাদের অ্যাপ্লিকেশনগুলিতে আমরা ডাব্লুএসডিএল ইউআরএলে একটি এসভিএন রিভিশন আইডি ব্যবহার করি যাতে ক্লায়েন্টটি অবিলম্বে কাঠামোগত পরিবর্তনগুলি সম্পর্কে জানতে পারে। এটি আমাদের অ্যাপ্লিকেশনটিতে কাজ করে কারণ, যতবার আমরা সার্ভার-সাইড পরিবর্তন করি, ততক্ষণে আমাদের ক্লায়েন্টকেও সামঞ্জস্য করতে হবে।

$client = new SoapClient('http://somewhere.com/?wsdl&rev=$Revision$');

এর জন্য এসএনএন সঠিকভাবে কনফিগার করা দরকার। সমস্ত ডিপোজিটরিগুলিতে নয় এটি ডিফল্টরূপে সক্ষম হয়।

যদি আপনি উভয় উপাদান (সার্ভার, ক্লায়েন্ট) এর জন্য দায়বদ্ধ না হন বা আপনি এসভিএন ব্যবহার না করেন তবে আপনি অন্য একটি সূচক খুঁজে পেতে পারেন যা আপনার ডাব্লুএসডিএল ইউআরএলে ক্যাশে-বাস্টার হিসাবে ব্যবহার করা যেতে পারে।


7
কিছু অন্য SOAP সার্ভার WSDL পরিবেশন করবে না যদি অন্য একটি প্যারামিটার উপস্থিত থাকে।
রাফেল রিয়েল

4

কেবলমাত্র ডকুমেন্টেশনের কারণে:

আমি এখন (2014) পর্যবেক্ষণ করেছি যে এই সমস্ত মূল্যবান এবং সঠিক পদ্ধতির মধ্যে কেবল একটিই সফল হয়েছিল। আমি সার্ভারে ডাব্লুএসডিএলে একটি ফাংশন যুক্ত করেছি এবং ক্লায়েন্টটি নতুন ফাংশনটি স্বীকৃতি দিচ্ছে না।

  • WSDL_CACHE_NONEপরামিতিগুলিতে যুক্ত করা কোনও উপকারে আসেনি।
  • ক্যাশে-বাস্টার যুক্ত করা কোনও উপকারে আসেনি।
  • soap.wsdl_cache_enabledপিএইচপি আইএনআই সেট করা সাহায্য করেছে।

আমি এখনই নিশ্চিত নই যে এটি তিনটি সংমিশ্রণ, বা কিছু বৈশিষ্ট্যগুলি ভয়াবহভাবে প্রয়োগ করা হয়েছে যাতে তারা এলোমেলোভাবে অকেজো হতে পারে, বা যদি বৈশিষ্ট্যের কিছু শ্রেণিবদ্ধতা না থাকে তবে।

সুতরাং পরিশেষে, আশা করুন যে এই জাতীয় সমস্যাগুলি সমাধান করতে আপনাকে তিনটি পরীক্ষা করে দেখতে হবে।


এফওয়াইআই ইনআই_সেট ("soap.wsdl_cache_en सक्षम", WSDL_CACHE_NONE); আমার জন্য ভাল কাজ করেছে
hobiley

0

আপনার php.iniফাইল সম্পাদনা করুন, অনুসন্ধান করুন soap.wsdl_cache_enabledএবং মানটি সেট করুন0

[soap]
; Enables or disables WSDL caching feature.
; http://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.