/
  • دریافت مقادیر پارامترهای ورودی

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی دریافت مقادیر پارامترهای ورودی
    نویسنده پیام
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #1
    دریافت مقادیر پارامترهای ورودی
    چگونه مقادیر پارامترهایی چون کنترولر و اکشن و ماژول و ... را از uri برداریم؟
    مثلا در داخل کنترلرها با فراخوانی زیر می شه این کار رو کرد:
    کد PHP:
    $this->_getParam('id'

    ولی مثلا در داخل bootstrap برای ساختن یک متغیر سراسری از پارامترها چنین دسترسی وجود ندارد.
    خواهشا کمک کنید!
    یا مثلا تمامی پارامترها را در یک متغیر بصورت آرایه رجیستر کنیم و در تمام اجزای برنامه بتوانیم از آن استفاده کنیم!!!
    (آخرین ویرایش در این ارسال: ۱۳۸۸ بهمن ۱۴ ۰۴:۴۵ عصر، توسط nasserghiasi.)
    ۱۳۸۸ بهمن ۱۴ ۰۴:۴۰ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #2
    RE: دریافت مقادیر پارامترهای ورودی
    کد PHP:
    Zend_Controller_Front::getInstance()->getRequest()->getParam('paramName'
    ۱۳۸۸ بهمن ۱۴ ۰۷:۲۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : nasserghiasi
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #3
    RE: دریافت مقادیر پارامترهای ورودی
    فکر کنم اشکالی در کد بالا هست!
    کد PHP:
    Fatal errorCall to a member function getParam() on a non-object in E:\wamp\www\farabit.ir\core\library\NAG\topNavigator.php  on line 16 

    ضمنا آیا نمیشه تمامی پارامترها را در داخل یک آرایه ذخیره کرد.
    این تابعی که شما دادید فقط درون کنترلرها کار می کنه!
    مثلا در فایل bootstrap.php قابل فراخوانی نیست
    و ضمنا برای گرفتن مقادیر پارامتر ها داخل کنترلر نیازی به این کد طویل نیست. با کد زیر هم می شه نتیجه گرفت:
    کد PHP:
    $this->_getParam('parameterName'); 
    (آخرین ویرایش در این ارسال: ۱۳۸۸ بهمن ۱۴ ۰۸:۴۶ عصر، توسط nasserghiasi.)
    ۱۳۸۸ بهمن ۱۴ ۰۸:۲۳ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #4
    RE: دریافت مقادیر پارامترهای ورودی
    این‌ کد ‌فقط‌ بعد از dispach‌ شدن fronController در‌ دسترس هست
    کد اخری هم که دادین که میانبر هست به چیزی که گفتم.
    می تونید این کار رو هم کنید
    کد PHP:
    Zend_Loader::loadClass('Zend_Controller_Request_Http');

    $request = new Zend_Controller_Request_Http();
    $request->getParam("paramName"

    اگر‌ از autoloader استفاده می‌ کنید خط اول رو نمی خواد بزارید
    ۱۳۸۸ بهمن ۱۴ ۱۰:۱۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : nasserghiasi
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #5
    RE: دریافت مقادیر پارامترهای ورودی
    متاسفانه این کد جواب نمی ده.
    حتی داخل کنترلر
    ۱۳۸۸ بهمن ۱۴ ۱۰:۲۶ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #6
    RE: دریافت مقادیر پارامترهای ورودی
    من هیچ راهی واسش پیدا نکردم. همه راهها این هست که حتما dispach‌ اجرا بشه.
    حالا شما چرا ابن نیاز دارید شاید در جای دیگه بشه این رو حل کرد.
    البته با توجه که با یکی دیگه صحبت داشتم گفته بود که اصلا استفاده از این مقادیر در داخل جایی به غیر از اکشن ها مجاز نیست. که البته حرفهای منطقی هم در این مورد می زد
    ۱۳۸۸ بهمن ۱۵ ۱۲:۲۳ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #7
    RE: دریافت مقادیر پارامترهای ورودی
    من مثلا یک شی از یک class که کارش ساختن منوی tabber بالایی هست در فایل bootstrap.php برای کل پروژه ایجاد کردم که متغیرهای ورودی آن دریافت مقادیر پارامترهای ماژول و کنترلر هست. البته استفاده از اجرای خودکار چنین توابعی که HTML به صفحه ملحق می کنند کار اصولی ای نیست چون ممکنه در برخی جاها از آجاکس استفاده کنم و بخوام فقط خروجی json داشته باشم، کلا فکر می کنم مدل mvc من چندان استاندارد نیست یه راهنمایی می کنید؟

    مدل:
    - برخی توابع در فایل Bootstrap.php بصورت خودکار در هر درخواستی اجرا می شوند مثلا پرکردن توابعی چون headTitle() و headLink و headMeta و تنظیمات هدر و فوتر سایت و خیلی از مواردی که در هر درخواست خروجی HTML نیاز است، با این منوال در هر درخواست خروجی HTML خواهیم داشت، ولی در کاربرد اجاکس فقط خروجی json مثلا نیاز است.
    حال من ماژولی به نام news و در داخل آن کنترلری به نام IndexController و اکشنی به نام listAction ایجاد کردم. ر درخواست زیر صفحه خروجی HTML است و لیستی از اخبار جدید را نمایش می دهد:
    کد:
    http://localhost/news/index/list
    ممکن است در بخشی از برنامه یک امکان در سایت قرار داده شود که pagination لیست اخبار بصورت آجاکسی مانند سایت کلوب باشد و هنگام کلیک بر روی شماره صفحه انتخابی یک درخواست POST بصورت آجاکس به آدرس زیر ارسال می شود و باید پاسخ و خروجی فقط بصورت json بوده و هیچ کد html نباشد:
    کد:
    http://localhost/news/index/list/ajax/true
    آیا در اکشن ها راه حلی برای غیرفعال کردن خروجی HTML وجود دارد؟
    این پروژه اولین پروژه ای هست که با زند می سازمش و می خوام تا جایی که می تونم بی نقص و توسعه پذیر بسازمش! لطفا راهنماییم کنید
    (۱۳۸۸ بهمن ۱۵ ۱۲:۲۳ صبح)admin نوشته شده توسط:  من هیچ راهی واسش پیدا نکردم. همه راهها این هست که حتما dispach‌ اجرا بشه.
    حالا شما چرا ابن نیاز دارید شاید در جای دیگه بشه این رو حل کرد.
    البته با توجه که با یکی دیگه صحبت داشتم گفته بود که اصلا استفاده از این مقادیر در داخل جایی به غیر از اکشن ها مجاز نیست. که البته حرفهای منطقی هم در این مورد می زد

    در برخی از کلاس هایی که خودم نوشتم میخواهم از امکانات زند استفاده کنم و در پروژه بکار ببرم. مثلا کلاس ساخت منوی ناوبری بصورت تب که نیازمند مقادیر پارامترهای کنترلر و ماژول هست. در این جا چه باید کرد؟
    (آخرین ویرایش در این ارسال: ۱۳۸۸ بهمن ۱۵ ۰۱:۰۳ صبح، توسط nasserghiasi.)
    ۱۳۸۸ بهمن ۱۵ ۱۲:۵۶ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #8
    RE: دریافت مقادیر پارامترهای ورودی
    شما در استفاده از زند به صورت کاربردی ازش استفاده نکردین. ببینین زند یه سری امکانات داده تا شما بتونید ایده هاتون رو پیاده سازی کنین.
    واسه‌ اولی می تونید از پلاگین استفاده کنید. البته همونطور که توی بحث های قبلی هم گفتم می تونید کلاس های خودتون رو بسازید . مثلا همین کلاس action رو بسازید. و توی‌متد‌ init اون‌ کاری که می خوایید انجام بدید.
    من این ایده خودم رو پیاده سازی می کنم
    کد PHP:
    class Vahid_Controller_Action extends Zend_Controller_Action
    {
        
        public function 
    init(){
            
    parent::init();
            
    $request$this->getRequest();
            
    $contextSwitch->addActionContext($request->getActionName(), array('html','json'))
                          ->
    initContext();
        }


    خب‌ حالا کار ما با این helper که یه مقدار توی صدا زندش کاستومایزش کردیم راحت میشه
    فرض کنید درخواست ‌یه‌ اکشن به اسم list توی کنترلر index داریم. ‌حالا لینکهای زیر رو برای این کنترلر می تونیم استفاده کنیم
    کد:
    /index/list
    // run indexController::list and render into index.phtml
    /index/list/format/html
    // run indexController::list and disable layout render into index.ajax.phtml
    /index/list/format/json
    // run indexController::list and disable layout render into index.json.phtml

    امیدوارم‌ بهتون‌ کمک کرده باشه
    (آخرین ویرایش در این ارسال: ۱۳۸۸ بهمن ۱۵ ۱۲:۱۰ عصر، توسط admin.)
    ۱۳۸۸ بهمن ۱۵ ۱۲:۰۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : nasserghiasi
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6196 تشکر در 3438 ارسال )
    ارسال: #9
    RE: دریافت مقادیر پارامترهای ورودی
    واسه دومی هم از پلاگین ها استفاده کنید
    ۱۳۸۸ بهمن ۱۵ ۱۲:۰۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #10
    RE: دریافت مقادیر پارامترهای ورودی
    منظورتون استفاده از پلاگین ، رجیستر کردن یک namespace هست؟
    من با استفاده از کد زیر یک پوشه رو رجیستر کردم و کلاس های من که بصورت پلاگین هستند از این پوشه در library لود می شوند:
    کد PHP:
    $autoloader->registerNamespace('Plugins'); 

    منظورتونو متوجه شدم!
    من وقتی شی view را در داخل bootstrap.php برای تعیین مسیر تم و تمپلیت ها فراخوانی می کنم اگر پارامتر ajax برابر true باشد لایه را ajax.phtml قرار میدهم و لاغیر HTML.phtml ولی مشکل من گرفتن مقادیر پارامترهای برنامه در فایل bootstrap.php هست!
    (آخرین ویرایش در این ارسال: ۱۳۸۸ بهمن ۱۶ ۱۲:۴۲ صبح، توسط nasserghiasi.)
    ۱۳۸۸ بهمن ۱۵ ۱۱:۳۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS