Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  JIFTY::CLASSLOADER (3)

.ds Aq ’


Jifty::ClassLoader - Loads the application classes



Jifty::ClassLoader loads all of the application’s model and action classes, generating classes on the fly for Collections of pre-existing models.


Returns a new ClassLoader object. Doing this installs a hook into @INC that allows Jifty::ClassLoader to dynamically create needed classes if they do not exist already. This works because if use/require encounters a blessed reference in @INC, it will invoke the INC method with the name of the module it is searching for on the reference.

Takes one mandatory argument, base, which should be the the application’s or a plugin’s base path; all of the classes under this will be automatically loaded.

Jifty::ClassLoader objects are singletons per base. If you call new and a class loader for the given base has already been initialized, this will return a reference to that object rather than creating a new one.


The hook that is called when a module has been require’d that cannot be found on disk. The following stub classes are auto-generated the class loader.

Here the "Application" indicates the name of the application the class loader is being applied to. However, this really just refers to the base argument passed to the constructor, so it could refer to a plugin class or just about anything else.
Application An empty application base class is created that doesn’t provide any methods or inherit from anything.
Application::Action An empty mixin class for all actions in your application. Should <B>notB> inherit from Jifty::Action.
Application::Action::[Verb][Something] If Application::Model::Something is a valid model class and Verb is one of Create, Search, Update, Execute, or Delete, then it creates a subclass of Application::Action::Record::Verb Models can control which actions are generated by overriding autogenerate_action in Jifty::Record. See also is_private in Jifty::Record and is_protected in Jifty::Record.
Application::Action::Something The class loader will search for a plugin Plugin such that Plugin::Action::Something exists. It will then create an empty class named Application::Action::Something that descends from Plugin::Action::Something.

This means that a plugin may be written to allow the application to override the default implementation used by the plugin as long as the plugin uses the application version of the class.

Application::Action::Record::Something An empty class that descends from the matching Jifty class, Jifty::Action::Record::Something. This is generally used to build application-specific descendants of Jifty::Action::Record::Create, Jifty::Action::Record::Execute, Jifty::Action::Record::Search, Jifty::Action::Record::Update, or Jifty::Action::Record::Delete.
Application::Bootstrap An empty class that descends from Jifty::Bootstrap.
Application::Collection An empty class that descends from Jifty::Collection is created.
Application::CurrentUser An empty class that descends from Jifty::CurrentUser.
Application::Dispatcher An empty class that descends from Jifty::Dispatcher.
Application::Event An empty class that descends from Jifty::Event is created.
Application::Event::Model An empty class that descents from Jifty::Event::Model is created.
Application::Event::Model::Something If Application::Model::Something is a valid model class, then it creates an empty descendant of Application::Event::Model with the record_class set to Application::Model::Something.
Application::Handle An empty class that descends from Jifty::Handle is created.
Application::Model::Something If Plugin::Model::Something exists and is a model class, then it creates a subclass of it named Application::Model::Something for the local application.

This allows an application to customize a model provided by a subclass (or choose not to). Plugins should be written to use the application’s version.

Application::Model::SomethingCollection If Application::Model::Something is a valid model class, then it creates a subclass of Jifty::Collection whose record_class is Application::Model::Something.
Application::Notification An empty class that descends from Jifty::Notification.
Application::Notification::Something The class loader will search for a plugin Plugin such that Plugin::Notification::Something exists. It will then create an empty class named Application::Notification::Something that descends from Plugin::Notification::Something.

This allows an application to customize the email notification sent out by a plugin as long as the plugin defers to the application version of the class.

Application::Record An empty class that descends from Jifty::Record is created.
Application::Upgrade An empty class that descends from Jifty::Upgrade.
Application::View An empty class that descends from Jifty::View::Declare.

    return_class CODE

A helper method; takes CODE as a string and returns an open filehandle containing that CODE.


Loads all of the application’s Actions and Models. It additionally require’s all Collections and Create/Update actions for each Model base class — which will auto-create them using the above code if they do not exist on disk.


Jifty supports model classes that aren’t files on disk but instead records in your database. It’s a little bit mind bending, but basically, you can build an application entirely out of the database without ever writing a line of code(*).

* As of early 2007, this forward looking statement is mostly a lie. But we’re working on it.

This method finds all database-backed models and instantiates jifty classes for them it returns a list of class names of the models it created.


Load up $appname::View, the view class for the application.


Accessor to the list of models this application has loaded.

In scalar context, returns a mutable array reference; in list context, return the content of the array.


ClassLoaders stringify as Jifty::ClassLoader(base class name)


When the ClassLoader gets garbage-collected, its entry in @INC needs to be removed.

    autogenerated PACKAGE

Returns true if the package was autogenerated by a classloader.


If you require more functionality than is provided by the classes created by ClassLoader (which you’ll almost certainly need to do if you want an application that does more than display a pretty Pony) then you should create a class with the appropriate name and add your extra logic to it.

For example you will almost certainly want to write your own dispatcher, so something like:

 package MyApp::Dispatcher;
 use Jifty::Dispatcher -base;

If you want to add some application specific behaviour to a model’s collection class, say for the User model, create in your applications Model directory.

 package MyApp::Model::UserCollection;
 use base MyApp::Collection;


Jifty and just about every other class that this provides an empty override for.


Jifty is Copyright 2005-2010 Best Practical Solutions, LLC. Jifty is distributed under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 JIFTY::CLASSLOADER (3) 2010-12-10

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.