-- Bart McLeod <[email protected]> wrote
(on Monday, 27 April 2009, 06:11 PM +0200):
> For all of you who are also wondering what is needed to replace the good old
> 
> require_once 'Zend/Loader.php';
> Zend_Loader::registerAutoLoad();
> 
> This is what is needed in it's most basic form:
> 
> require_once 'Zend/Loader/Autoloader.php';
> $loader = Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);


In most cases, you won't even need to call setFallbackAutoloader(), btw.


> holografix . schreef:
> 
>     The form class in APPLICATION_PATH\forms\Login.php
>      
>     class Form_Login extends Zend_Form
>     {
>         public function init() {
>             $this->setAction('/login')
>                  ->setMethod('post')
>                  ->setName('formlogin')
>                  ->setAttrib('id', 'formlogin');
>            
>             // Create and configure username element
>             $username = $this->createElement('text', 'username');
>             $username->setLabel('User')
>                      ->addValidator('alnum')                
>                      ->addValidator('stringLength', false, array(3, 15))
>                      ->setRequired(true)
>                      ->setAttrib("size", 20)
>                      ->setAttrib('maxLength', 20);       
>            
>             // Create and configure password element
>             $password = $this->createElement('password', 'password');
>             $password->setLabel('Password')
>                      ->addValidator('StringLength', false, array(3, 15))
>                      ->setAttrib("size", 20)
>                      ->setAttrib('maxLength', 20)
>                      ->setRequired(true);       
>            
>             // Create and configure submit button element
>             $submit = $this->createElement('submit', 'submit');
>             $submit->setRequired(false)
>                    ->setIgnore(true)
>                    ->setLabel('Login');
>            
>             // Add elements to form
>             $this->addElement($username)
>                  ->addElement($password)
>                  ->addElement($submit);
>            
>             return $this;
>         }
>     }
> 
>     Thanks for the support
>     holo
> 
>      
>     2009/4/27 Matthew Weier O'Phinney <[email protected]>
> 
>         -- holografix . <[email protected]> wrote
>         (on Monday, 27 April 2009, 04:18 PM +0100):
>         > problem
>         > I forgot to tell that this dev box is Win Vista 32
>         >
>         > In bootstrap.php:
>         >
>         > $module = new Zend_Application_Module_Autoloader(array(
>         >        'namespace' => '',
>         >        'basePath'  => APPLICATION_PATH . '/forms'
>         >  ));
>         > Warning: include(C:\wwwroot\devapp\application/forms/forms//
>         Login.php) [
>         > function.include]: failed to open stream: No such file or directory
>         >
>         > I change 'basePath' from APPLICATION_PATH . '/forms' to
>         APPLICATION_PATH
>         >
>         > $module = new Zend_Application_Module_Autoloader(array(
>         >        'namespace' => '',
>         >        'basePath'  => APPLICATION_PATH
>         >  ));
>         > Renamed APPLICATION_PATH\forms\Form_Login.php to Login.php and
>         removed the
>         > include of this file in controller action.
> 
>         My bad -- I jumped the gun. Yes, basePath => APPLICATION_PATH is what 
> I
>         meant to write.
> 
>         > The file is loaded but the output is the same:
>         >
>         > <form action="/login"
>         >       method="post"
>         >       id="formlogin"
>         >       name="loginform">
>         >
>         > <fieldset>
>         >     <legend>Login</legend>
>         >
>         >     <form id="username"></form>
>         >     <form id="password"></form>
>         >     <form id="submit"></form>
>         > </fieldset>
>         > </form>
> 
>         Can you provide the form class itself so I can take a look at it? 
> Right
>         now, I have no idea what's wrong, nor how it could be generated.
> 
>         Thanks!
> 
>         > Cheers
>         > holo
>         > 2009/4/27 Matthew Weier O'Phinney <[email protected]>
>         >
>         >     -- holografix . <[email protected]> wrote
>         >     (on Monday, 27 April 2009, 02:34 PM +0100):
>         >     > I have an application developed with ZF 1.7 and it works fine
>         up to ZF
>         >     1.7.8.
>         >     > After update developpment box to ZF to latest trunk version,
>         >     > starting to get notices about Zend_Loader::registerAutoload(),
>         saying
>         >     it's
>         >     > deprecated and will be removed in 2.0.0.
>         >     > This application follows ZF directory structure and it
>         registers a front
>         >     > controller plugin where resources are initialized.
>         >     >
>         >     > New code in bootstrap.php:
>         >     >
>         >     > require_once 'Zend/Loader/Autoloader.php';
>         >     >
>         >     > $loader = Zend_Loader_Autoloader::getInstance()->
>         setFallbackAutoloader
>         >     (true);
>         >     > $loader->registerNamespace('ZendExt_');
>         >     >
>         >     > $front = Zend_Controller_Front::getInstance();
>         >     > $front->registerPlugin(new ZendExt_Plugin_Initialize
>         (APPLICATION_ENV));
>         >     >
>         >     > Resources are initialized but have some problems with loading 
> a
>         form.
>         >     >
>         >     > When opening the application, if one is not logged in, it
>         redirects to
>         >     index/
>         >     > login (Form_Login.php)
>         >     > http://application => http://application/login
>         >     >
>         >     > Forms are in a dir called forms under application dir.
>         >     > In login action I have this code
>         >     >
>         >     > public function loginAction()
>         >     > {
>         >     >     include APPLICATION_PATH . "/forms/Form_Login.php";
>         >     >
>         >     >     $loginForm = new Form_Login();
>         >     >
>         >     >     ... validation and authentication
>         >     > }
>         >     >
>         >     > The output is wrong
>         >     >
>         >     > <form action="/login" method="post" id="formlogin" name=
>         "formlogin">
>         >     > <fieldset>
>         >     >     <legend>Login</legend>
>         >     >     <form id="username"></form>
>         >     >     <form id="password"></form>
>         >     >     <form id="submit"></form>
>         >     > </fieldset>
>         >     > </form>
>         >     >
>         >     >
>         >     > With Zend_Loader there are no problems.
>         >     > How can I fix the problem ?
>         >
>         >     Use a module autoloader:
>         >
>         >        $module = new Zend_Application_Module_Autoloader(array(
>         >            'namespace' => '',
>         >            'basePath'  => APPLICATION_PATH . '/forms',
>         >        ));
>         >
>         >     Then make sure your form is in the file:
>         >
>         >        APPLICATION_PATH/
>         >            forms/
>         >                Login.php
>         >
>         >     and contains the clas 'Form_Login'.
>         >
>         >     You can do that anywhere -- your bootstrapping code is probably
>         the best
>         >     place, however. Once you have, you will not need to do an
>         >     include/include_once to get your form -- just 'new 
> Form_Login()'.
>         >
>         >     --
>         >     Matthew Weier O'Phinney
>         >     Project Lead            | [email protected]
>         >     Zend Framework          | http://framework.zend.com/
>         >
>         >
> 
>         --
>         Matthew Weier O'Phinney
>         Project Lead            | [email protected]
>         Zend Framework          | http://framework.zend.com/
> 
> 
> 

-- 
Matthew Weier O'Phinney
Project Lead            | [email protected]
Zend Framework          | http://framework.zend.com/

Reply via email to