CakePHP 1.3 Application Development Cookbook

CakePHP 1.3 Application Development Cookbook
eBook: $23.99
Formats: PDF, PacktLib, ePub and Mobi formats
save 15%!
Print + free eBook + free PacktLib access to the book: $63.98    Print cover: $39.99
save 6%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Table of Contents
Sample Chapters
  • Create elegant and scalable web applications using CakePHP
  • Leverage your find operations with virtual fields, ad-hoc queries, and custom find types
  • Add full internationalization support to your application, including translation of database records
  • Part of Packt's Cookbook series: Each recipe is a carefully organized sequence of instructions to complete the task as efficiently as possible

Book Details

Language : English
Paperback : 360 pages [ 235mm x 191mm ]
Release Date : March 2011
ISBN : 1849511926
ISBN 13 : 9781849511926
Author(s) : Mariano Iglesias
Topics and Technologies : All Books, Web Development, Cookbooks, Open Source, PHP, Web Development

Table of Contents

Chapter 1: Authentication
Chapter 2: Model Bindings
Chapter 3: Pushing the Search
Chapter 4: Validation and Behaviors
Chapter 5: Datasources
Chapter 6: Routing Magic
Chapter 7: Creating and Consuming Web Services
Chapter 8: Working with Shells
Chapter 9: Internationalizing Applications
Chapter 10: Testing
Chapter 11: Utility Classes and Tools
  • Chapter 1: Authentication
    • Introduction
    • Setting up a basic authentication system
    • Using and configuring the Auth component
    • Allowing logins with username or e-mail
    • Saving the user details after login
    • Getting the current user's information
    • Using prefixes for role-based access control
    • Setting up Access Control Layer-based authentication
    • Integrating with OpenID
    • Chapter 2: Model Bindings
      • Introduction
      • Adding Containable to all models
      • Limiting the bindings returned in a find
      • Modifying binding parameters for a find
      • Modifying binding conditions for a find
      • Changing the JOIN type of one-to-one associations
      • Defining multiple associations to the same model
      • Adding bindings on the fly
      • Chapter 3: Pushing the Search
        • Introduction
        • Performing GROUP and COUNT queries
        • Using virtual fields
        • Building queries with ad-hoc JOINs
        • Searching for all items that match search terms
        • Implementing a custom find type
        • Paginating a custom find type
        • Implementing AJAX based pagination
        • Chapter 4: Validation and Behaviors
          • Introduction
          • Adding multiple validation rules
          • Creating a custom validation rule
          • Using callbacks in behaviors
          • Using behaviors to add new fields for saving
          • Using the Sluggable behavior
          • Geocoding addresses with the Geocodable behavior
          • Chapter 5: Datasources
            • Introduction
            • Improving the SQL datasource query log
            • Parsing CSV files with a datasource
            • Consuming RSS feeds with a datasource
            • Building a Twitter datasource
            • Adding transaction and locking support to the MySQL datasource
            • Chapter 6: Routing Magic
              • Introduction
              • Using named and GET parameters
              • Using routes with prefixes
              • Working with route elements
              • Adding catch-all routes for profile pages
              • Adding validation for catch-all routes
              • Creating custom Route classes
              • Chapter 7: Creating and Consuming Web Services
                • Introduction
                • Creating an RSS feed
                • Consuming a JSON service
                • Building REST services with JSON
                • Adding authentication to REST services
                • Implementing token-based authorization for API access
                • Chapter 8: Working with Shells
                  • Introduction
                  • Building and running a shell
                  • Parsing command line parameters
                  • Creating reusable shell tasks
                  • Sending e-mails from shells
                  • Non-interactive tasks with the robot plugin
                  • Chapter 9: Internationalizing Applications
                    • Introduction
                    • Internationalizing controller and view texts
                    • Internationalizing model validation messages
                    • Translating strings with dynamic content
                    • Extracting and translating text
                    • Translating database records with the Translate behavior
                    • Setting and remembering the language
                    • Chapter 10: Testing
                      • Introduction
                      • Setting up the test framework
                      • Creating fixtures and testing model methods
                      • Testing controller actions and their views
                      • Using mocks to test controllers
                      • Running tests from the command line
                      • Chapter 11: Utility Classes and Tools
                        • Introduction
                        • Working with the Set class
                        • Manipulating strings with the String class
                        • Sending an e-mail
                        • Detecting file types with MagicDb
                        • Throwing and handling exceptions

                        Mariano Iglesias

                        Mariano has been programming since the early age of 11. He quickly became proficient with C and C++, producing his first commercial applications at 15 years of age. He then continued to learn several other programming languages, PHP being one of them. He has contributed to several open source projects, becoming part of the core development team of both CakePHP and Lithium, two of the best PHP frameworks. He currently divides his time between open source programming, his commercial work, his hobbies, and spending time with his family.

                        Code Downloads

                        Download the code and support files for this book.

                        Submit Errata

                        Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


                        - 2 submitted: last submission 31 Oct 2012


                        Errata Type: Code Page no:126 line no: 28


                        $explain = $datasource->query(sprint($this->explain, $line['query'])); it should be like this: $explain = $datasource->query(print($this->explain->$line['query'])); instead of , it should be -> and use print function instead of sprint



                        Errata Type: Code Page no: 44


                        Missing comma after 'Family.Person' it must be: 'Family.Person',


                        Sample chapters

                        You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                        Frequently bought together

                        CakePHP 1.3 Application Development Cookbook +    Java EE 6 Development with NetBeans 7 =
                        50% Off
                        the second eBook
                        Price for both: $37.50

                        Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                        What you will learn from this book

                        • Add authentication to an application to identify which controllers will need user access, using the Auth component and ACL component
                        • Allow users to log in using either a user name, or an email, and let the system remember their account details
                        • Enable and leverage the use of the Containable behavior to deal with model bindings
                        • Make run time changes to model bindings for a better control of your model relationships
                        • Perform relatively complex GROUP and COUNT queries using CakePHP's built in find types and use virtual fields for a cleaner approach to SQL based calculations
                        • Creating custom find operations, and paginating its result using CakePHP's built in pagination support
                        • Add multiple validation rules per field using built in validation rules in CakePHP
                        • Allow users to search address records by proximity by adding location information to our own Address model using the Geocodable behavior
                        • Implement your own datasource by providing a way to read from and post messages to a twitter account using OAuth as the authentication layer
                        • Modify an existing datasource by adding better transaction support to the MySQL driver and implementing locking operations
                        • Take advantage of the routing flexibility in CakePHP by creating your own route handlers
                        • Build non interactive tasks that run in the command line, including the automation of tasks
                        • Internationalize all areas of your application, including views and model records, to reach a wider audience

                        In Detail

                        CakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying web applications. While the framework has a lot of documentation and reference guides available for beginners, developing more sophisticated and scalable applications require a deeper knowledge of CakePHP features, a challenge that proves difficult even for well established developers.

                        The recipes in this cookbook will give you instant results and help you to develop web applications, leveraging the CakePHP features that allow you to build robust and complex applications. Following the recipes in this book you will be able to understand and use these features in no time.

                        We start with setting up authentication on a CakePHP application. One of the most important aspects of a CakePHP application: the relationship between models, also known as model bindings. Model binding is an integral part of any application's logic and we can manipulate it to get the data we need and when we need. We will go through a series of recipes that will show us how to change the way bindings are fetched, what bindings and what information from a binding is returned, how to create new bindings, and how to build hierarchical data structures. We also define our custom find types that will extend the three basic ones, allowing our code to be even more readable and also create our own find type, with pagination support. This book also has recipes that cover two aspects of CakePHP models that are fundamental to most applications: validation, and behaviors.

                        A cookbook for CakePHP developers on how to leverage one of the most popular PHP frameworks, including recipes for working with AJAX, datasources, GEO location, routing, performance optimization, and more.


                        Written in cookbook style, this book offers learning and techniques through recipes. It contains step-by-step instructions for CakePHP developers to create unique web applications. The book is designed in such a way that you can refer to things chapter by chapter, and read them in no particular order.

                        Who this book is for

                        If you are a CakePHP developer who wants to discover quick and easy ways to improve web applications, and to leverage all aspects of the framework, this book is for you. This book assumes that you already have knowledge of CakePHP, and general PHP development skills.

                        Code Download and Errata
                        Packt Anytime, Anywhere
                        Register Books
                        Print Upgrades
                        eBook Downloads
                        Video Support
                        Contact Us
                        Awards Voting Nominations Previous Winners
                        Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                        Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software