New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controllers in the subdirectories (and sub-namespaces) #1467

Closed
mgrechanik opened this Issue Dec 9, 2013 · 34 comments

Comments

Projects
None yet
8 participants
@mgrechanik
Contributor

mgrechanik commented Dec 9, 2013

Hello.
I have not found the explanation about this moment in the "upgrade from v.1" article so there is a question.
In the yii1 we were able to put our controllers in subdirectories of the controller directory.
In this documentation it is described like this:

If the ID is in the format 'path/to/xyz', the controller class name is assumed to be XyzController and the corresponding class file is protected/controllers/path/to/XyzController.php.

But what about Yii2?
For example if I have:

config\
controllers\
      \admin\
             SomeController.php (it's full name = \app\controllers\admin\SomeController.php) 
       StudyController.php (it's full name = \app\controllers\StudyController.php) 
...
web\

But now it is not possible to use this \app\controllers\admin\SomeController.php controller via request like this:

?r=admin/some
@qiangxue

This comment has been minimized.

Show comment
Hide comment
@qiangxue

qiangxue Dec 9, 2013

Member

The support for controllers in subdirectories is dropped in 2.0. This can be worked around using module or URL rules.

Member

qiangxue commented Dec 9, 2013

The support for controllers in subdirectories is dropped in 2.0. This can be worked around using module or URL rules.

@qiangxue qiangxue closed this Dec 9, 2013

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

@qiangxue but this was a very good feature in Yii1, any reasons why it was dropped? for example in Yii1 some REST api can be implemented very easy with subdirectories, anyway they were commonly used.

This can be worked around using module or URL rules.

using URL rules in not a good choice here, because of time needed for parsing them and because of big count of such controllers. Also in Yii1 it was not easy to write url-rules, hope this will be fixed in Yii2 :)

Contributor

Ragazzo commented Dec 9, 2013

@qiangxue but this was a very good feature in Yii1, any reasons why it was dropped? for example in Yii1 some REST api can be implemented very easy with subdirectories, anyway they were commonly used.

This can be worked around using module or URL rules.

using URL rules in not a good choice here, because of time needed for parsing them and because of big count of such controllers. Also in Yii1 it was not easy to write url-rules, hope this will be fixed in Yii2 :)

@qiangxue

This comment has been minimized.

Show comment
Hide comment
@qiangxue

qiangxue Dec 9, 2013

Member

This was mainly to simplify the URL routing. With subdirectory support, given a requested route, we cannot easily determine which controller it corresponds to. Can you show why it is useful for REST api implementation?

Member

qiangxue commented Dec 9, 2013

This was mainly to simplify the URL routing. With subdirectory support, given a requested route, we cannot easily determine which controller it corresponds to. Can you show why it is useful for REST api implementation?

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

Can you show why it is useful for REST api implementation?

well, one of the main REST api rule is that u must specify api version in url in this way (not always but very recommended to do it in this way rather then in headers): api/v1/users/ it was very easy, now in current implementation we always need to create another module or struggle with url rules.

Contributor

Ragazzo commented Dec 9, 2013

Can you show why it is useful for REST api implementation?

well, one of the main REST api rule is that u must specify api version in url in this way (not always but very recommended to do it in this way rather then in headers): api/v1/users/ it was very easy, now in current implementation we always need to create another module or struggle with url rules.

@qiangxue

This comment has been minimized.

Show comment
Hide comment
@qiangxue

qiangxue Dec 9, 2013

Member

Makes sense. Will reconsider it. Thanks.

Member

qiangxue commented Dec 9, 2013

Makes sense. Will reconsider it. Thanks.

@qiangxue qiangxue reopened this Dec 9, 2013

@ghost ghost assigned qiangxue Dec 9, 2013

@mgrechanik

This comment has been minimized.

Show comment
Hide comment
@mgrechanik

mgrechanik Dec 9, 2013

Contributor

And my concern was mainly about how to organize controllers within a module (not by big names but placing them to different sub-namespaces) .

Contributor

mgrechanik commented Dec 9, 2013

And my concern was mainly about how to organize controllers within a module (not by big names but placing them to different sub-namespaces) .

@klimov-paul

This comment has been minimized.

Show comment
Hide comment
@klimov-paul

klimov-paul Dec 9, 2013

Member

one of the main REST api rule is that u must specify api version in url in this way

I solved this problem using single URL rule like following:

'<version:\d>/<controller:\w+>/<action:\w+>'

While controller path was switched by the API module itself on “init()” method.

public function init() {
    if (isset($_GET['version'])) {
        $apiVersion = $_GET['version'];
        $apiControllerPaths = $this->getApiControllerPaths();
        if (isset($apiControllerPaths[$apiVersion])) {
            $controllerPath = Yii::getPathOfAlias($apiControllerPaths[$apiVersion]);
            $this->setControllerPath($controllerPath);
        }
    }
}
Member

klimov-paul commented Dec 9, 2013

one of the main REST api rule is that u must specify api version in url in this way

I solved this problem using single URL rule like following:

'<version:\d>/<controller:\w+>/<action:\w+>'

While controller path was switched by the API module itself on “init()” method.

public function init() {
    if (isset($_GET['version'])) {
        $apiVersion = $_GET['version'];
        $apiControllerPaths = $this->getApiControllerPaths();
        if (isset($apiControllerPaths[$apiVersion])) {
            $controllerPath = Yii::getPathOfAlias($apiControllerPaths[$apiVersion]);
            $this->setControllerPath($controllerPath);
        }
    }
}
@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

@klimov-paul sure, this is also a solution, but simple subdirectories that can be handle by Yii itself is rather simple :) also Yii2 set global arrays? $_GET?

Contributor

Ragazzo commented Dec 9, 2013

@klimov-paul sure, this is also a solution, but simple subdirectories that can be handle by Yii itself is rather simple :) also Yii2 set global arrays? $_GET?

@klimov-paul

This comment has been minimized.

Show comment
Hide comment
@klimov-paul

klimov-paul Dec 9, 2013

Member

simple subdirectories that can be handle by Yii itself is rather simple

Such support reminds other approach to parse URLs, which I always supposed to be most appropriate for the “friendly URLs”: what if every controller could parse the part of URL, which is trailing after its name?

Assume you have URL: “/user/profile/edit”. Application parses only first part “user”, finds the corresponding controller “app/controllers/UserController” and rest of the URL parses the controller, which can now pass the URL parsing further to another sub-controller, or preform own internal action.
So in result the controllers will compose a tree structure.
What do you think about it?

I assume people will start to say this is too complex and makes application too hard to read and understand.
But the thing, you are proposing is just a first step to this.

also Yii2 set global arrays?

That was example from Yii1.

Member

klimov-paul commented Dec 9, 2013

simple subdirectories that can be handle by Yii itself is rather simple

Such support reminds other approach to parse URLs, which I always supposed to be most appropriate for the “friendly URLs”: what if every controller could parse the part of URL, which is trailing after its name?

Assume you have URL: “/user/profile/edit”. Application parses only first part “user”, finds the corresponding controller “app/controllers/UserController” and rest of the URL parses the controller, which can now pass the URL parsing further to another sub-controller, or preform own internal action.
So in result the controllers will compose a tree structure.
What do you think about it?

I assume people will start to say this is too complex and makes application too hard to read and understand.
But the thing, you are proposing is just a first step to this.

also Yii2 set global arrays?

That was example from Yii1.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

well i dont think that this is a good idea about parsing only part of url, anyway your example from Yii1 so in Yii2 you cant make it that simple with rules, right? So no other option we have.

Contributor

Ragazzo commented Dec 9, 2013

well i dont think that this is a good idea about parsing only part of url, anyway your example from Yii1 so in Yii2 you cant make it that simple with rules, right? So no other option we have.

@klimov-paul

This comment has been minimized.

Show comment
Hide comment
@klimov-paul

klimov-paul Dec 9, 2013

Member

in Yii2 you cant make it that simple with rules, right?

Yii2 fills up $_GET array with parsed parameters as well. See “yii\web\Request::resolve()”, which is called in “yii\web\Application::handleRequest()”.

Member

klimov-paul commented Dec 9, 2013

in Yii2 you cant make it that simple with rules, right?

Yii2 fills up $_GET array with parsed parameters as well. See “yii\web\Request::resolve()”, which is called in “yii\web\Application::handleRequest()”.

@klimov-paul

This comment has been minimized.

Show comment
Hide comment
@klimov-paul

klimov-paul Dec 9, 2013

Member

well i dont think that this is a good idea about parsing only part of url

Really? What about #810 and #1226 then?

Member

klimov-paul commented Dec 9, 2013

well i dont think that this is a good idea about parsing only part of url

Really? What about #810 and #1226 then?

@egorpromo

This comment has been minimized.

Show comment
Hide comment
@egorpromo

egorpromo Dec 9, 2013

Contributor

Suppose we have the route is 'path/to/xyz'? Ok, the controller is xyzController. But what is 'path/to/'? First off, what is 'path'? Is it module or directory? What algorithm will be used for this 'first off speciality'?
p.s. I think it is needed feature.

Contributor

egorpromo commented Dec 9, 2013

Suppose we have the route is 'path/to/xyz'? Ok, the controller is xyzController. But what is 'path/to/'? First off, what is 'path'? Is it module or directory? What algorithm will be used for this 'first off speciality'?
p.s. I think it is needed feature.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

@klimov-paul usually parsing starting from the end and not from the beginning, no? anyway this is a good feature that makes fw more useful and friendly, dunoo why you are so opposite and trying to offense me.

Contributor

Ragazzo commented Dec 9, 2013

@klimov-paul usually parsing starting from the end and not from the beginning, no? anyway this is a good feature that makes fw more useful and friendly, dunoo why you are so opposite and trying to offense me.

@klimov-paul

This comment has been minimized.

Show comment
Hide comment
@klimov-paul

klimov-paul Dec 9, 2013

Member

Suppose we have the route is 'path/to/xyz'? Ok, the controller is xyzController. But what is 'path/to/'? First off, what is 'path'? Is it module or directory? What algorithm will be used for this 'first off speciality'?

At the time I was starting my web developer career (that was long ago), in my company we have used “hand-made” framework, which supported “friendly” URLs in way similar to the one I have described.
It parsed the URL string into array of params, then it uses first param value as a controller name, passing all remaining params as an constructor argument.
Each controller have to declare method named “dispatch()”, which used those params to determine further program thread. Inside this method I can call an internal controller method or even create brand new controller instance and invoke “dispatch()” for it.
So parsing URL “/user/profile/edit”, at first, application creates controller “UserController” and invoke its “dispatch()” with params: [‘profile’, ‘edit’], then this dispatcher creates controller “UserProfileController” and passes params: [‘edit’] to it, and this controller invokes method “actionEdit()”.

Imagine you can determine the URL processing thread for the each module you created, just like #810 suggests. Application parses URL, determines the module by the first URL part, and then allows your module to decide how to parse remaining part on its own. This will allow creation of indeed “self-contained” modules.

But!
Is it really good?
Nowadays, there is a “de facto” standard of the URL rewriting, which uses set of rules to determine the actual controller by the “friendly” URL alias. This approach is used in Zend and other PHP frameworks as well as in Rails and Django.
It introduces unified approach: we have a global set of URL rules, which determines everything.

I simply do not like situations, when there are exceptions in rules. Here in particular: we say there is a config for URL manager, which determines, which controller will match the URL alias, but there is an exception, if you use controller sub directories.

anyway this is a good feature that makes fw more useful and friendly

I have already shown you how you can solve this issue without sub directory controllers. I do not think this feature is crucial. I am just asking: if we accept it where should we stop then? What about ability of isolated module to determine its own URL routing and so on? Should be support it as well then?

why you are so opposite and trying to offense me.

I am not trying to offence you, I am sorry if it sounds so.

P.S. It is not me to decide whether to accept or decline this feature.

Member

klimov-paul commented Dec 9, 2013

Suppose we have the route is 'path/to/xyz'? Ok, the controller is xyzController. But what is 'path/to/'? First off, what is 'path'? Is it module or directory? What algorithm will be used for this 'first off speciality'?

At the time I was starting my web developer career (that was long ago), in my company we have used “hand-made” framework, which supported “friendly” URLs in way similar to the one I have described.
It parsed the URL string into array of params, then it uses first param value as a controller name, passing all remaining params as an constructor argument.
Each controller have to declare method named “dispatch()”, which used those params to determine further program thread. Inside this method I can call an internal controller method or even create brand new controller instance and invoke “dispatch()” for it.
So parsing URL “/user/profile/edit”, at first, application creates controller “UserController” and invoke its “dispatch()” with params: [‘profile’, ‘edit’], then this dispatcher creates controller “UserProfileController” and passes params: [‘edit’] to it, and this controller invokes method “actionEdit()”.

Imagine you can determine the URL processing thread for the each module you created, just like #810 suggests. Application parses URL, determines the module by the first URL part, and then allows your module to decide how to parse remaining part on its own. This will allow creation of indeed “self-contained” modules.

But!
Is it really good?
Nowadays, there is a “de facto” standard of the URL rewriting, which uses set of rules to determine the actual controller by the “friendly” URL alias. This approach is used in Zend and other PHP frameworks as well as in Rails and Django.
It introduces unified approach: we have a global set of URL rules, which determines everything.

I simply do not like situations, when there are exceptions in rules. Here in particular: we say there is a config for URL manager, which determines, which controller will match the URL alias, but there is an exception, if you use controller sub directories.

anyway this is a good feature that makes fw more useful and friendly

I have already shown you how you can solve this issue without sub directory controllers. I do not think this feature is crucial. I am just asking: if we accept it where should we stop then? What about ability of isolated module to determine its own URL routing and so on? Should be support it as well then?

why you are so opposite and trying to offense me.

I am not trying to offence you, I am sorry if it sounds so.

P.S. It is not me to decide whether to accept or decline this feature.

@slavcodev

This comment has been minimized.

Show comment
Hide comment
@slavcodev

slavcodev Dec 9, 2013

Contributor

Rule + Controller Map

'<modules:\w+>/<version:\d>/<controller:\w+>/<action:\w+>' => '<module>/<controller><version>/<action>'
'controllerMap' => [
  'Controller1' => ['class' => 'Module\Controller\v1\Controller']
]

vs a complex code which search controllers in modules, subfolders, etc, every request including simple application :(
I think is unnecessary future in core.

Contributor

slavcodev commented Dec 9, 2013

Rule + Controller Map

'<modules:\w+>/<version:\d>/<controller:\w+>/<action:\w+>' => '<module>/<controller><version>/<action>'
'controllerMap' => [
  'Controller1' => ['class' => 'Module\Controller\v1\Controller']
]

vs a complex code which search controllers in modules, subfolders, etc, every request including simple application :(
I think is unnecessary future in core.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

@slavcodev well we are considering this to avoid modules use. also will you put all 30 controllers in controllerMap and each time will edit it? not sounds good. And this is only one example (resp api).

Contributor

Ragazzo commented Dec 9, 2013

@slavcodev well we are considering this to avoid modules use. also will you put all 30 controllers in controllerMap and each time will edit it? not sounds good. And this is only one example (resp api).

@slavcodev

This comment has been minimized.

Show comment
Hide comment
@slavcodev

slavcodev Dec 9, 2013

Contributor

I propose put controllers in map via behavior, trait or own application (module) class. But not complicated core code. May be adding any additional events before route, but not add hard code, because controllers in subfolders is special case

Contributor

slavcodev commented Dec 9, 2013

I propose put controllers in map via behavior, trait or own application (module) class. But not complicated core code. May be adding any additional events before route, but not add hard code, because controllers in subfolders is special case

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 9, 2013

Contributor

well in rails its working good, dunno why you find it complicated in Yii. Anyway lets @qiangxue decide and listen other developers opinions :)

Contributor

Ragazzo commented Dec 9, 2013

well in rails its working good, dunno why you find it complicated in Yii. Anyway lets @qiangxue decide and listen other developers opinions :)

@slavcodev

This comment has been minimized.

Show comment
Hide comment
@slavcodev

slavcodev Dec 9, 2013

Contributor

Yes rails is cool, php is sucks, I've heard :)

Contributor

slavcodev commented Dec 9, 2013

Yes rails is cool, php is sucks, I've heard :)

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

well, according that engine exceptions were postponed to php6 that can be true :D anyway no more offtop)

Contributor

Ragazzo commented Dec 10, 2013

well, according that engine exceptions were postponed to php6 that can be true :D anyway no more offtop)

@samdark

This comment has been minimized.

Show comment
Hide comment
@samdark

samdark Dec 10, 2013

Member

I think controller map is the best option here.

Member

samdark commented Dec 10, 2013

I think controller map is the best option here.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

@samdark how to resolve api/v1/users with controllerMap? Also will Yii2 be more REST centric and map put/post/patch/delete requests to the according controller actions by default or need to write rules manually, that was very painful in Yii1 as also events, but they are fixed in Yii2?

Contributor

Ragazzo commented Dec 10, 2013

@samdark how to resolve api/v1/users with controllerMap? Also will Yii2 be more REST centric and map put/post/patch/delete requests to the according controller actions by default or need to write rules manually, that was very painful in Yii1 as also events, but they are fixed in Yii2?

@samdark

This comment has been minimized.

Show comment
Hide comment
@samdark

samdark Dec 10, 2013

Member

What are corresponding actions you want to map to? For example, to which controllers and actions the following should be mapped:

POST /user
GET /user
DELETE /comment
PUT /comment
Member

samdark commented Dec 10, 2013

What are corresponding actions you want to map to? For example, to which controllers and actions the following should be mapped:

POST /user
GET /user
DELETE /comment
PUT /comment
@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

POST /users -> UsersController::actionCreate
GET /users/2 -> UsersController::actionView
GET /users -> UsersController::actionIndex
DELETE /comments -> CommentsController::actionDelete
put is just like post, it is better to use patch, so
PATCH /comments -> CommentsController::actionUpdate

very similar as rails does. anyway this question will be raised one more time when it will be a time to implement API in the api issue here - #303

Contributor

Ragazzo commented Dec 10, 2013

POST /users -> UsersController::actionCreate
GET /users/2 -> UsersController::actionView
GET /users -> UsersController::actionIndex
DELETE /comments -> CommentsController::actionDelete
put is just like post, it is better to use patch, so
PATCH /comments -> CommentsController::actionUpdate

very similar as rails does. anyway this question will be raised one more time when it will be a time to implement API in the api issue here - #303

@samdark

This comment has been minimized.

Show comment
Hide comment
@samdark

samdark Dec 10, 2013

Member

@Ragazzo starting to make sense. Any other mappings that should happen?

Member

samdark commented Dec 10, 2013

@Ragazzo starting to make sense. Any other mappings that should happen?

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

well i will be satisfied with this one, but you can look in rails mapping and other features that are very useful, maybe in some other issues they will be also mentioned by other developers, dunno.

Contributor

Ragazzo commented Dec 10, 2013

well i will be satisfied with this one, but you can look in rails mapping and other features that are very useful, maybe in some other issues they will be also mentioned by other developers, dunno.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

also @samdark by default this can be done with url-rules, like in Yii1 where controller/id is mapped o controller/view, but if this will be supported by framework by default and there will be no need to write this rules manually it will be great :)

Contributor

Ragazzo commented Dec 10, 2013

also @samdark by default this can be done with url-rules, like in Yii1 where controller/id is mapped o controller/view, but if this will be supported by framework by default and there will be no need to write this rules manually it will be great :)

@qiangxue

This comment has been minimized.

Show comment
Hide comment
@qiangxue

qiangxue Dec 10, 2013

Member

I'm working on #303. Will provide some special URL rules to simplify the declaration of restful routes.

Member

qiangxue commented Dec 10, 2013

I'm working on #303. Will provide some special URL rules to simplify the declaration of restful routes.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

yay! am, @qiangxue but is there any things that can be considered by you on current work? for example it would be great if api will be a module (question is where to put controllers then) as in Yii2 debug for example, and each action must be extended from Action base class this will help to make partial responses, and other things that are mentioned in book http://info.apigee.com/Portals/62317/docs/web%20api.pdf. something like this https://github.com/evan108108/RESTFullYii/tree/master/starship/RestfullYii/actions.

Contributor

Ragazzo commented Dec 10, 2013

yay! am, @qiangxue but is there any things that can be considered by you on current work? for example it would be great if api will be a module (question is where to put controllers then) as in Yii2 debug for example, and each action must be extended from Action base class this will help to make partial responses, and other things that are mentioned in book http://info.apigee.com/Portals/62317/docs/web%20api.pdf. something like this https://github.com/evan108108/RESTFullYii/tree/master/starship/RestfullYii/actions.

@qiangxue

This comment has been minimized.

Show comment
Hide comment
@qiangxue

qiangxue Dec 10, 2013

Member

I'm currently reviewing existing Yii extensions and other frameworks for restful support. Will bring up the design discussion soon.

Member

qiangxue commented Dec 10, 2013

I'm currently reviewing existing Yii extensions and other frameworks for restful support. Will bring up the design discussion soon.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Dec 10, 2013

Contributor

great. just link this issue to the discussion issue too.

Contributor

Ragazzo commented Dec 10, 2013

great. just link this issue to the discussion issue too.

@Ragazzo

This comment has been minimized.

Show comment
Hide comment
@Ragazzo

Ragazzo Feb 18, 2014

Contributor

@qiangxue what is the status of this one? Also want to clarify, why thise route will not work:

http://localhost:8000/index.php?r=custom/users

namespace frontend\controllers\custom\UsersController;

route will not be resolved.

same if the controller is in module controller subdirectory. Is there any good way to resolve this with using subdirectories?

Contributor

Ragazzo commented Feb 18, 2014

@qiangxue what is the status of this one? Also want to clarify, why thise route will not work:

http://localhost:8000/index.php?r=custom/users

namespace frontend\controllers\custom\UsersController;

route will not be resolved.

same if the controller is in module controller subdirectory. Is there any good way to resolve this with using subdirectories?

@samdark

This comment has been minimized.

Show comment
Hide comment
@samdark

samdark Feb 18, 2014

Member

There's no subdirectories support now.

Member

samdark commented Feb 18, 2014

There's no subdirectories support now.

@Ragazzo Ragazzo referenced this issue Mar 4, 2014

Closed

Provide web-api support #303

5 of 9 tasks complete

@qiangxue qiangxue closed this in 1006135 Mar 5, 2014

mrvanwagoner added a commit to mrvanwagoner/yii2 that referenced this issue Mar 5, 2014

Merge branch 'master' of https://github.com/yiisoft/yii2 into develop…
…ment

# By Carsten Brandt (18) and others
# Via Alexander Makarov (6) and others
* 'master' of https://github.com/yiisoft/yii2: (86 commits)
  Revert "Used ternary operator instead of "or" for constant definition"
  Changelog
  reset access cache when user identity is set
  Keyboard shortcut for previous, next and refresh buttons
  reset batch query result when rewinding.
  fixed loading namespaceless controller classes.
  Fixes #1467: Added support for organizing controllers in subdirectories
  replace pjax with external resouce via composer
  fixed > 100 typos introduced by me :-)
  fixed condition for HHVM test
  fixed phpdoc
  updated phpdoc references of BaseAR to the interface
  Fixes #2624: Html::textArea() should respect "name" option.
  apps code style fixes
  Removed unused "use" statements
  Changed "and" to "&&"
  Used ternary operator instead of "or" for constant definition
  Removed unused variables
  Removed executable flag from asset files
  Changelog for #2607
  ...

cebe added a commit that referenced this issue Mar 6, 2014

Merge branch 'master' into apidoc-refactoring
* master: (153 commits)
  rest doc.
  CS fix
  Add size attribute to Modal
  major features and documentation finished for REST API.
  rest WIP
  Removed U+FEFF character from pt-PT language file to fixe #2631
  Revert "Used ternary operator instead of "or" for constant definition"
  `User` here
  REST wip.
  Changelog
  reset access cache when user identity is set
  Keyboard shortcut for previous, next and refresh buttons
  reset batch query result when rewinding.
  fixed loading namespaceless controller classes.
  Fixes #1467: Added support for organizing controllers in subdirectories
  replace pjax with external resouce via composer
  fixed > 100 typos introduced by me :-)
  fixed condition for HHVM test
  fixed phpdoc
  updated phpdoc references of BaseAR to the interface
  ...

Conflicts:
	extensions/apidoc/templates/BaseRenderer.php
	extensions/apidoc/templates/html/views/constSummary.php
	extensions/apidoc/templates/html/views/propertyDetails.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment