Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Laravel Application Development Cookbook

You're reading from   Laravel Application Development Cookbook Since Laravel is so versatile, one of the best learning routes is a cookbook. We've included lots of recipes and guidance on building web application, both simple and complex. It's a pick & mix approach that works brilliantly.

Arrow left icon
Product type Paperback
Published in Oct 2013
Publisher Packt
ISBN-13 9781782162827
Length 272 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Terry Matula Terry Matula
Author Profile Icon Terry Matula
Terry Matula
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Laravel Application Development Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
1. Setting Up and Installing Laravel FREE CHAPTER 2. Using Forms and Gathering Input 3. Authenticating Your Application 4. Storing and Using Data 5. Using Controllers and Routes for URLs and APIs 6. Displaying Your Views 7. Creating and Using Composer Packages 8. Using Ajax and jQuery 9. Using Security and Sessions Effectively 10. Testing and Debugging Your App 11. Deploying and Integrating Third-party Services into Your Application Index

Creating advanced Autoloaders with namespaces and directories


If we want to be sure that our custom classes don't conflict with any other class in our app, we will need to add them to a namespace. Using the PSR-0 standard and Composer, we can easily autoload these classes into Laravel.

Getting ready

For this recipe, we need to set up a standard Laravel installation.

How to do it...

To complete this recipe, follow these steps:

  1. Inside the /app directory, create a new directory named custom, and inside of custom, create a directory named Custom, and in Custom, create a directory named Shapes.

  2. Inside the /app/custom/Custom/Shapes directory, create a file named MyShapes.php and add this code:

    <?php namespace Custom\Shapes;
    
    class MyShapes {
        public function triangle() 
        {
            return 'I am a triangle';
        }
    }
  3. In the root of the application, open the composer.json file and locate the autoload section. Update it so it looks like this:

    "autoload": {
        "classmap": [
        "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
        ],
        "psr-0": {
            "Custom": "app/custom"
        }
    }
  4. Open the command line and run dump-autoload on Composer:

    php composer.phar dump-autoload
    
  5. Now we can call that class by using its namespace. For example, if we create a route:

    Route::get('shape', function()
    {
        $shape = new Custom\Shapes\MyShapes;
        return $shape->triangle();
    });

How it works...

Namespaces are a powerful addition to PHP, and they allow our classes to be used without us having to worry about their class names interfering with other class names. By autoloading namespaces in Laravel, we could create a complex group of classes and never have to worry about class names conflicting with other namespaces.

For our purposes, we're loading the custom class through composer, and the PSR-0 standard of autoloading.

There's more...

To further extend the use of our namespaced class, we could use the IoC to bind it to our app. More information can be found in the Laravel documentation at http://laravel.com/docs/ioc.

See also

  • The Using Autoloader to map a class name to its file recipe

You have been reading a chapter from
Laravel Application Development Cookbook
Published in: Oct 2013
Publisher: Packt
ISBN-13: 9781782162827
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image