Apr 24, 2008

PHP Tuturial In Action: Objects, Design, Agility


This book’s purpose involves a kind of bigamy. It introduces state-of-the art objectoriented design principles, patterns, and techniques. Then it weds these to two different partners. The first partner is PHP, the programming language. The second partner is the PHP programmer’s everyday work.

More specifically, this book is about handling and implementing these principles, patterns, and techniques in PHP with its specific syntax and characteristics. It is also about how to apply them to the specific and common challenges of web programming.

Who should read this book?
This book is for programmers who develop applications in PHP and want to learn modern object-oriented practices, principles, and techniques, and how to apply them to the everyday challenges of web programming.
It is not a beginner’s book in PHP; it presupposes a minimum of familiarity with PHP—or experience in other programming languages—and with the basic ideas and challenges of web programming.

How this book is organized
The book is divided into four parts. Parts 1 and 2 introduce the principles, patterns, and techniques mentioned initially and demonstrate how they can be implemented in PHP. Part 1 introduces and develops the subjects of object-oriented programming and design. Part 2 deals with unit testing and refactoring.

Parts 3 and 4 apply the material from the first two parts to the everyday challenges of web programming. Part 3 is about the web interface, while part 4 deals with databases and data storage.

Part 1: Basic tools and concepts
Part 1 moves gradually, chapter by chapter, from the nuts and bolts of object-oriented programming in PHP to the more conceptual subject of object-oriented application design.
Chapter 1 introduces and discusses the pros and cons of PHP and agile practices.
Chapter 2 and chapter 3 deal with the mechanics and syntax of object-oriented programming in PHP. Although objects and classes are ultimately inseparable subjects,
chapter 2 focuses mostly on object features and chapter 3 on class features.
Chapter 4 discusses why objects and classes are a good idea, how they relate to the real world, and how we can tell the difference between good and bad object-oriented designs.
Chapter 5 is about the basic class relationships—inheritance, association, and composition— and the role of interfaces in program design.
Chapter 6 is where we start to go into object-oriented design in earnest. It deals with object-oriented principles that serve as general guidelines for design.
Chapter 7 introduces the subject of design patterns—recurrent solutions to common design problems—and describes some of the most common ones.
Chapter 8 shows how design principles and patterns work in the context of an extended example: date and time handling.

Read more and Download

Writing Secure Code (Ms Press)


Organization of This Books (Writing Secure Code):

The book is divided into five parts. Chapter 1, The Need for Secure Systems and Chapter 2, Designing Secure Systems make up.

Part I, Contemporary Security, and outline the reasons why systems should be secured from attack and the guidelines and analysis techniques for designing such systems.

The meat of the book is in Parts II and III. Part II, Secure Coding Techniques, encompassing Chapters 3 through 8, outlines critical coding techniques that apply to almost any application.

Part III, Network-Based Application Considerations, includes four chapters (Chapters 9 through 12) that focus on networked applications, including Web-based applications.

Part IV, Special Topics, includes three chapters (Chapters 13 through 15) that cover less-often-discussed subjects, including security in .NET applications, testing, and secure software installation.
Chapter 16 includes general guidelines that dont fit in any single chapter.

Part V, Appendixes, includes four appendixes covering sundry other matters, including dangerous APIs and the lame excuses we ve heard for not considering security!
Michael wrote Chapters 1, 2, 4,8, and 12,14. David wrote Chapters 3, 9, 11, and 15. Both authors crafted Chapters 10 and 16.

As a final note, unlike the authors of a good many other security books, we wont just tell you how insecure applications are and moan about people not wanting to build secure systems. This book is utterly pragmatic and, again, relentlessly practical. It explains how systems can be attacked, mistakes that are often made, and, most important, how to build secure systems.

Download This Books