Version control of extensions can be useful

Can extensions or yii … check if scripts are up-to-date?

In debug mode, developers can see some messages like

ext.widgetName installed is 1.3.4 founded 1.3.5 bla bla bla

or … you are using yii-2.0.1. 2.0.2 is avalilable … (install)

or a system like wordpress to update yii or an extension with just one click

I don’t think this should be included in Yii framework, and it is even almost impossible for user extensions. For official Yii extensions, it could be possible(for example some command line application, that would check all installed extensions), but not sure if it is necessary.

Probably will be covered by package manager. Will see.

ot it may be implemented in Gii, which is a developer tool par excellence.

+1 - it should. :)

The database schema for my pet project handles the above using a few tables. My installer module can install anything Yii related and records all installations in an elements table down to the single file level. It could be used to handle Yii updates to the core framework. An element is anything installable and new elements can be added at any time. For version and language control, element_id, version, language, and uuid are a combined primary key. This gives each element installation a unique identity. I have a dependencies table that should help immensely if your a DRY/KISS fan because the approach allows modules to be created at more of an atomic level in the interest of normalizing a database schema. For example, most applications use some kind of content. It’s possible to use a DRY approach by creating a common content table to store content for any number of modules. As an example, a CMS interface and a commerce application can store content in the same table. For the CMS and Commerce modules, the Content module is a dependency.

By recording and element’s dependencies, you can optionally remove them when an element is removed. Dependencies used by other elements are protected. Multiple versions of the same element can exist should different elements have dependencies on various versions of another element. Application core elements can be protected, preventing the user from removing them.

In the beginning, my main interest in tracking dependencies had more to do with allowing the installer to also perform updates and this is clearly demonstrated in my schema.

I still don’t have a clear idea about Package Manager’s capabilities. Thus, I may be reinventing the wheel without knowing it or obsoleting Package Manager before it becomes available.


This would be pretty useful indeed :)