Book Image

Getting Started with Laravel 4

By : Raphaël Saunier
Book Image

Getting Started with Laravel 4

By: Raphaël Saunier

Overview of this book

<p>PHP powers many of the largest websites on the planet. Yet, even though it was specifically created for the Web, its shortcomings never cease to frustrate developers. This is where a tool like Laravel comes in. Rather than reinventing the wheel, Laravel reuses tried and tested components and principles and bundles them to form a cohesive whole and makes PHP development enjoyable again.</p> <p>Getting Started with Laravel 4 is a practical and concise introduction to the Laravel PHP framework. It covers its fundamental concepts and presents the many features that will boost your productivity when developing web applications. After introducing the key concepts and installing Composer, you will build a CRUD application and add more features to it in each successive chapter.</p> <p>This book introduces you to a different and more enjoyable way of writing PHP applications. You will start by learning about the key principles and the same development practices that Laravel encourages. Then, in subsequent chapters, you will create and successively add more features to a web application.</p> <p>You will learn how to use the arsenal of tools at your disposal and probably pick up some useful techniques along the way. Indeed, everything you will learn in this book is highly transferrable and applicable to other MVC frameworks. Laravel's routing mechanism, templating language, and object-relational mapper will have no more secrets for you. You will learn how to authenticate users, write tests, and create command line utilities that interact with your application with disconcerting ease. In addition to this, you will probably be surprised by the simplicity and expressiveness of your code.</p>
Table of Contents (15 chapters)
Getting Started with Laravel 4
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Dealing with files


Far more elegant and consistent than its native counterparts in PHP, Laravel's file manipulation functions make it easier to write the web and console applications that deal with the uploads along with the filesystem.

File uploads

The following functions will make it easier for you to deal with file uploads in your application:

  • This function creates a form to send files (by adding enctype='multipart/form-data' to the <form> element):

    Form::open(array('files' => true))
  • This function creates a file upload field:

    Form::file('avatar');
  • This function retrieves the uploaded file and saves it to an existing folder inside app/storage/:

    $avatar = Input::file('avatars')->move(storage_path() . "/uploads/avatars");
  • This function retrieves the path of the uploaded file:

    $path = Input::file('avatar')->getRealPath();
  • This function retrieves the original name of an uploaded file:

    $name = Input::file('avatar')->getClientOriginalName();
  • This function retrieves the extension of the uploaded file:

    $extension = Input::file('avatar')->getClientOriginalExtension();
  • This function retrieves the size of an uploaded file:

    $size = Input::file('photo')->getSize();

File manipulation methods

The File class also exposes several methods to retrieve and manipulate files:

  • The following methods check for the existence or type:

    File::exists('path/to/file/or/directory');
    File::isDirectory('path/to/directory');
    File::isWritable('path/to/directory');
    File::isFile('path/to/file');
  • This method gets the contents of a file:

    File::get('path/to/file');
  • This method creates a file and writes to it (if the file exists, it is overwritten):

    File::put('path/to/file', 'contents');
  • The following methods append or prepend to a file:

    File::append('path/to/file', contents');
    File::prepend('path/to/file', contents');
  • This method deletes a file:

    File::delete('path/to/file');
  • The following methods move or copy files:

    File::move('path/to/file', 'new/path/to/file');
    File::copy('path/to/file', 'path/to/file-copy');
  • The following methods help you get the basic information about a file:

    File::extension('path/to/file');
    File::type('path/to/file');
    File::size('path/to/file');
    File::lastModified('path/to/file');
  • This method gets an array of all the subdirectories within a given directory:

    File::directories('path/to/directory');
  • This method gets an array of all the files in a directory:

    File::files('path/to/directory');
  • This method recursively lists all of the files in a directory and its subdirectories:

    File::allFiles('directory');
  • These methods perform common operations on directories:

    File::makeDirectory('path/to/new/directory', $mode, $recursive);
    File::copyDirectory('source', 'destination', $options = null);
    File::deleteDirectory('path/to/directory');
  • This method empties a directory but does not delete it:

    File::cleanDirectory('path/to/directory');