سؤال

لنفترض أنه في تطبيقي لدي مثيل كائن تم إنشاؤه في الصفحة 1.ينتقل المستخدم بعد ذلك إلى جزء آخر من التطبيق وأريد أن يبقى المثيل.كيف يمكنني "حفظ" المثيل؟الجلسات؟

هل كانت مفيدة؟

المحلول

نعم، استخدم جلسة .

session_start () في بداية الصفحة الخاصة بك، ثم تخزين وجوه الخاص بك مع شيء من هذا القبيل $_SESSION['myobject']=$myobject;

وصفحة لاحقة يمكن الوصول $_SESSION['myobject'] بعد أن يدعو أيضا session_start ()

وكنت بحاجة للتأكد من أن أي صفحة والذي يستخدم تلك الدورة لديه فئة الكائن المحدد أو قادرة على <لأ href = "http://uk.php.net/manual/en/language.oop5.autoload فب "يختلط =" نوفولو noreferrer "> لصناعة السيارات في تحميل ذلك.

وصفك يمكن أيضا تحديد طرق سحرية <لأ href = "http://uk.php.net/manual/en/language.oop5.magic.php#language.oop5.magic.sleep" يختلط = "نوفولو noreferrer "> __ النوم و <لأ href =" http://uk.php.net/manual/en/language.oop5.magic.php#language.oop5.magic.sleep "يختلط =" نوفولو noreferrer " > __ صحوة التي تسمح لك لتنظيف أي متغيرات الأعضاء التي لا تريد إجراء تسلسل (مثل الموارد، مثل مقابض ديسيبل). خلال __wakeup يمكنك استعادة هذه.

نصائح أخرى

وهناك طريقتان لقد استخدمت لطلباتي: دورات وقاعدة البيانات

الجلسات نعم، ولكنها ستكون نسخة جديدة لها نفس الخصائص وليست نفس مثال.هناك خيارات أخرى تستخدم O/R-Mapper لتخزين الكائن في قاعدة البيانات والاحتفاظ بالمفتاح الخاص به في الجلسة، أو استخدام memcached مع مفتاح فريد (على سبيل المثال معرف الجلسة) - ولكن هذا لن يكون هو الحل نفس مثيل - مجرد مثيل بنفس الخصائص.

إذا كنت في حاجة إلى مثلها بالضبط مثيل كائن بين طلبين في PHP وأخشى أن هذا مستحيل (لا مستحيل, ، كل شيء ممكن - ولكن سيتعين عليك تشغيل PHP فوق نوع ما من خادم التطبيقات)

لديك أساسا خيارين: <م> دولة جانب الخادم أو <م> حالة العميل

وعادة ما يتم دولة جانب الخادم من خلال الدورات. هذا هو الحل أبسط وأقوى، ولكن لديها بعض العيوب (التزامن، وغير قادر على الاستمرار دولة مع مرور الوقت، الخ.).

ويمكن الحفاظ على الدولة من جانب العميل من خلال URL - عادة في معلمات سلسلة الاستعلام. على سبيل المثال، إلى "تذكر" و$name متغير بين صفحتين، قد خلق رابط على الصفحة الأولى، مثل هذا: http://www.example.org/second_page.php?name=Jimbo، والصفحة الثانية ويمكن بعد الحصول على متغير من خلال $_GET. هذا هو أصعب بكثير للحصول على الحق، ولها بعض القيود على مقدار دولة يمكنك تحويل بين الصفحات. لهذا السبب، الناس لديهم ميل للذهاب مع دولة جانب الخادم، حتى عندما حالة العميل سيكون أكثر ملاءمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top