CakePHP 1.3 plugin enabling transfer/manipulation/embedding of files in 23 ways.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
README Fixing typo in docs. Oct 8, 2013
media_app_model.php Updating email address. Oct 8, 2013


xx xx   xxxx  xxx  x   xxx
x x x  x x    x  x x  x x x
x   x   xxxx  xxx  x  x   x
Plugin for CakePHP

---- A CakePHP plugin enabling transfer/manipulation/embedding
     of files in 23 ways.

This plugin was conceived as a thorough solution to all the needs coming from
dealing with media files in a web application. Moreover the idea is to show
how much a well maintained plugin can be worth it and inspire others to do the
same. The plugin slowly evolved (and in fact still does) from a very distinct
set of tightly coupled components into something much more flexible. This
allows you to use only the functionality you really need.

Originally written for CakePHP 1.2 and 1.3 and maintained since as early as
2007 this project keeps on moving slowly but steady.

Versions compatible with CakePHP 1.3 are actively maintained and developed.

There will be no a port of it lead by myself - yet - to make it compatible
with CakePHP 2.x or any future version thereafter.

Add the plugin as a submodule to an exisiting app repository.

$ cd /path/to/project
$ git submodule add \ \
$ git submodule update --init --recursive

In order to bootstrap, load the plugin's configuration file; preferably from
within your app's main configuration file (config/core.php) like this:

// ...
require APP . 'plugins/media/config/media.php';
// ...

A FAQ, migration instructions and a tutorial are available in the `docs/`
subdirectory. For more information consult the API documentation in the
source code.

Getting Help
You can post questions regarding the usage of the plugin to the very active
Official CakePHP Mailinglist ( When
question are answered there it helps everybody reading the list.

Commercial support is available. You may book me for paid professional
support. Contact me for more details:

For bugs please do not mail me directly, but use the project's issue tracker

See the AUTHORS file.

Copyright & License
Media Plugin for CakePHP is Copyright (c) 2007-2013 David Persson
if not otherwise stated. The code is distributed under the terms
of the MIT License. For the full license text see the LICENSE file.

Versions & Requirements
1.4.0, CakePHP 1.3.x, PHP >=5.4.0 (in progress)
1.3.0, CakePHP 1.3.x, PHP >=5.2.1
0.6.x, CakePHP 1.2.x, PHP >=5.1.0
0.5.x, CakePHP 1.2.x, PHP >=5.1.0

Please see the corresponding docs/CHANGES-*.x file for
migration and update instructions.

The plugin is known to run fine under linux and darwin. There exist some
issues on windows (, though.

This plugin has originally written for CakePHP 1.2 and 1.3 and maintained since
as early as 2007. It forms my very first successful open source project. It's
originally been written to scratch my own itch, namely

With version 1.3.0, the plugin comes bundled with the mm library replacing
classes related to media processing, metadata and MIME-types. Please see
the documentation of the mm library (
for additonal requirements and information.

Versions prior to 1.3.0 used to follow a different naming scheme. This has
been changed in retrospect (i.e. 0.6x is now known as 0.6.x) in order to make
a clean and comprehensible chronology.

In 2012 I've stopped maintaining this plugin as I saw myself overwhelmed with
the task of both moving the project forward, making it compatible to future
CakePHP versions.

In 2013 I've restarted maintaining this plugin with a narrowed down roadmap. I
figured out if I'd just support 1.3 for now and all in all move a bit more
slow - I could still keep on maintaining.

I'm seeing how this plugin is adding missing functionality to the CakePHP
universe and indeed useful to a lot of CakePHP users.

Thanks for all the discussion surrounding this plugin,
the support, watching, following and contributions!

To keep maintainance cost low this plugin will try to reduce framework specific
code and re-use external libraries. Sometimes what appears to be framework
specific can be made generic and extracted into such an external library.

Parts of this plugin have already been extracted and live under: