Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-1197

Proxies should handle variable argument lists

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Can't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: ORM
    • Security Level: All
    • Labels:
      None

      Description

      This is a contingency issue for https://github.com/doctrine/doctrine2/pull/60

      "Fix to allow for proxy generated classes to respect methods in parent which may use func_get_args internally. Previously they would be passed nothing and thus fail. Also reduces need to build up argumentString. "

        Activity

        Hide
        Chris Richard added a comment - - edited

        Could we use an annotation to indicate when a function uses variable arguments and output call_user_func_array only in that case?

        Show
        Chris Richard added a comment - - edited Could we use an annotation to indicate when a function uses variable arguments and output call_user_func_array only in that case?
        Hide
        Marco Pivetta added a comment -

        I won't fix this. There are some problems here that are not trivial:

        1 - to make proxies always "safe", we would need to use func_get_args in every proxy call
        2 - because of (1), performance will GREATLY degrade
        3 - because of (1), byref parameter passing will be broken

        What we could do is introspecting the contents of methods to look for func_get_args usages (requires introduction of a complex parser).

        I am closing this - consider opening an issue at https://github.com/Ocramius/ProxyManager/issues instead, so we can analyze if this logic can be improved for 3.x with the replacement of the "simple" doctrine proxies with something more complete.

        Also note that https://github.com/Ocramius/ProxyManager/issues/159 could also solve this without the need for complex logic.

        Show
        Marco Pivetta added a comment - I won't fix this. There are some problems here that are not trivial: 1 - to make proxies always "safe", we would need to use func_get_args in every proxy call 2 - because of (1), performance will GREATLY degrade 3 - because of (1), byref parameter passing will be broken What we could do is introspecting the contents of methods to look for func_get_args usages (requires introduction of a complex parser). I am closing this - consider opening an issue at https://github.com/Ocramius/ProxyManager/issues instead, so we can analyze if this logic can be improved for 3.x with the replacement of the "simple" doctrine proxies with something more complete. Also note that https://github.com/Ocramius/ProxyManager/issues/159 could also solve this without the need for complex logic.

          People

          • Assignee:
            Marco Pivetta
            Reporter:
            Benjamin Eberlei
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: