The Grumpy Programmer's Guide To Testing PHP Applications


Book Description

Learn how a Grumpy Programmer approaches testing PHP applications, covering both the technical and core skills you need to learn in order to make testing just a thing you do instead of a thing you struggle with. I feel that testing, as a concept, is hard to explain to beginning programmers: "we are going to write code that is going to make sure your other code works as expected". The assumption that underlies all this is that you already understand how to write computer programs in your chosen language! This makes it very difficult to teach to beginner or inexperienced programmers. When you combine this with how PHP does not force any particular structure on you, you have an environment where only the folks who are really motivated end up learning about testing. The Grumpy Programmer's Guide To Testing PHP Applications is my way to try and provide some help for developers who are looking to become more test-centric and reap the benefits of automated testing and related tooling like static analysis and automation. I believe that by learning the skills (both technical and core) surrounding testing you will be able to write tests using almost any testing framework and almost any PHP application. The book combines all the material from my previous books, adds new material, and revisits some old topics where my experiences have changed my thoughts. I break the vast topic of testing into smaller chunks, along with providing lots of examples and explanations of how I approach testing applications. Some of the things I cover are: Test-Driven development Strategies for Test-After practices Test refactoring strategies How PHPUnit itself works Complementary tools and approaches like static analysis and mutation testing Learning the core skills you need to get other people testing their code




PHP Web Development with MySQL


Book Description

# BioKen Marks has been working in his dream job as a Programming Instructor at Madison College in Madison, Wisconsin, teaching PHP web development using MySQL since 2012. Prior to teaching, Ken worked as a software engineer for more than 20 years, mainly developing medical device software. Ken is actively involved in the PHP community, speaking and teaching at conferences.# Description## Build Web Applications from Scratch with PHP and MySQLLearn how to build dynamic and secure websites using modern PHP with MySQL databases.PHP today is a mature, robust language focused on programming web applications and sites. This book gives you an introduction to its syntax, built-in data structures, and scalar data types. You'll also see how to work with cookies, sessions, and web requests using native PHP functions and features. This approach gives you a solid grounding for working in any other PHP application from WordPress, to modern frameworks, to legacy applications. Each chapter includes plenty of code examples to reinforce the concepts introduced as well as suggested exercises for the reader.The book also walks you through building a typical Create-Read-Update-Delete (CRUD) application, starting with setting up a development environment through building the pages and forms required. Along the way, you'll get solid, practical advice on how to add authentication, handle file uploads, safely store passwords, application security, and more.### Topics Covered* PHP Script Execution* Setting up a Development Environment* Using Variables, Strings, and Basic Operators* Working with Arrays* Comparing Variables, Logical Operators, and Flow Control* Writing Counting and Sentinel Loops* Reusing code with custom functions* Working with HTML Forms* Validating User Input* Saving, Updating, and Deleting Data in a Database* Querying and Displaying Database Result Sets* Safely Working with File Uploads* Adding Basic and Session-based User Log Ins* Persisting User data with Cookies and Sessions* Securing against Common Web Attacks and Vulnerabilities* Building a shopping-cart-like feature.* An Introduction to Object-Oriented Code in PHP




Elasticsearch: The Definitive Guide


Book Description

Whether you need full-text search or real-time analytics of structured data—or both—the Elasticsearch distributed search engine is an ideal way to put your data to work. This practical guide not only shows you how to search, analyze, and explore data with Elasticsearch, but also helps you deal with the complexities of human language, geolocation, and relationships. If you’re a newcomer to both search and distributed systems, you’ll quickly learn how to integrate Elasticsearch into your application. More experienced users will pick up lots of advanced techniques. Throughout the book, you’ll follow a problem-based approach to learn why, when, and how to use Elasticsearch features. Understand how Elasticsearch interprets data in your documents Index and query your data to take advantage of search concepts such as relevance and word proximity Handle human language through the effective use of analyzers and queries Summarize and group data to show overall trends, with aggregations and analytics Use geo-points and geo-shapes—Elasticsearch’s approaches to geolocation Model your data to take advantage of Elasticsearch’s horizontal scalability Learn how to configure and monitor your cluster in production




Functional Programming in PHP


Book Description

Many programming languages have embraced Functional Programming paradigms to augment the tools available. It also facilitates writing code that is easier to understand, easier to test, and able to take advantage of parallelization. PHP introduced anonymous function and closures in 5.3, providing a more succinct way to tackle common problems. However, making the leap from the more common imperative style requires understanding how and when to best use lambdas, closures, recursion, and more. Functional Programming will show you how to leverage these new language features by understanding functional programming principles. Plenty of examples are provided to illustrate each concept as it's introduced and to show how to implement it with PHP. You'll learn how to use map/reduce, currying, composition, and more. You'll see what external libraries are available and new language features are proposed to extend PHP's functional programming capabilities.




Sams Teach Yourself PHP in 24 Hours


Book Description

Think of all the things you could do in 24 hours. Go sightseeing. Read a book. Learn PHP. Sams Teach Yourself PHP in 24 Hours is a unique learning tool that is divided into 24 one-hour lessons over five sections. Starting with the basics, you will discover the fundamentals of PHP and how to apply that knowledge to create dynamic websites with forms, cookies and authentication functions. You will also find out how to access databases, as well as how to integrate system components, e-mail, LDAP, network sockets and more. A support website includes access to source code, PHP updates, errata and links to other relevant websites. Sams Teach Yourself PHP in 24 Hours is a quick and easy way to learn how to create interactive websites for your end user.




Modern PHP


Book Description

PHP is experiencing a renaissance, though it may be difficult to tell with all of the outdated PHP tutorials online. With this practical guide, you’ll learn how PHP has become a full-featured, mature language with object-orientation, namespaces, and a growing collection of reusable component libraries. Author Josh Lockhart—creator of PHP The Right Way, a popular initiative to encourage PHP best practices—reveals these new language features in action. You’ll learn best practices for application architecture and planning, databases, security, testing, debugging, and deployment. If you have a basic understanding of PHP and want to bolster your skills, this is your book. Learn modern PHP features, such as namespaces, traits, generators, and closures Discover how to find, use, and create PHP components Follow best practices for application security, working with databases, errors and exceptions, and more Learn tools and techniques for deploying, tuning, testing, and profiling your PHP applications Explore Facebook’s HVVM and Hack language implementations—and how they affect modern PHP Build a local development environment that closely matches your production server




Zend Framework 1 to 2 Migration Guide


Book Description

Zend Framework 1 was one of the first major frameworks for PHP 5 and, for many, introduced object-oriented programming principles for writing PHP applications. Many developers looking to embrace a well-architected and supported framework chose to use it as the foundation for their applications. However, the first version was not without its faults. Zend Framework 2 is a significant improvement over its predecessor. It re-designed key components, promotes the re-use of code through modules, and takes advantage of features introduced in PHP 5.3 such as namespaces. The first release of ZF1 was in 2006. If you're maintaining an application built on it, this practical guide will help you to plan how to migrate to ZF2. This book addresses common issues that you'll encounter and provides advice on how best to update your application to take advantage of ZF2's features. It also compares how key components-including Views, Database Access, Forms, Validation, and Controllers-have been updated and how to address these changes in your application code. Written by PHP professional and Zend Framework contributor, coach, and consultant Bart McLeod, this book leverages his expertise to ease your application's transition to Zend Framework 2.




Debugging Teams


Book Description

In the course of their 20+-year engineering careers, authors Brian Fitzpatrick and Ben Collins-Sussman have picked up a treasure trove of wisdom and anecdotes about how successful teams work together. Their conclusion? Even among people who have spent decades learning the technical side of their jobs, most haven’t really focused on the human component. Learning to collaborate is just as important to success. If you invest in the "soft skills" of your job, you can have a much greater impact for the same amount of effort. The authors share their insights on how to lead a team effectively, navigate an organization, and build a healthy relationship with the users of your software. This is valuable information from two respected software engineers whose popular series of talks—including "Working with Poisonous People"—has attracted hundreds of thousands of followers.




Teaching and Learning STEM


Book Description

The widely used STEM education book, updated Teaching and Learning STEM: A Practical Guide covers teaching and learning issues unique to teaching in the science, technology, engineering, and math (STEM) disciplines. Secondary and postsecondary instructors in STEM areas need to master specific skills, such as teaching problem-solving, which are not regularly addressed in other teaching and learning books. This book fills the gap, addressing, topics like learning objectives, course design, choosing a text, effective instruction, active learning, teaching with technology, and assessment—all from a STEM perspective. You’ll also gain the knowledge to implement learner-centered instruction, which has been shown to improve learning outcomes across disciplines. For this edition, chapters have been updated to reflect recent cognitive science and empirical educational research findings that inform STEM pedagogy. You’ll also find a new section on actively engaging students in synchronous and asynchronous online courses, and content has been substantially revised to reflect recent developments in instructional technology and online course development and delivery. Plan and deliver lessons that actively engage students—in person or online Assess students’ progress and help ensure retention of all concepts learned Help students develop skills in problem-solving, self-directed learning, critical thinking, teamwork, and communication Meet the learning needs of STEM students with diverse backgrounds and identities The strategies presented in Teaching and Learning STEM don’t require revolutionary time-intensive changes in your teaching, but rather a gradual integration of traditional and new methods. The result will be a marked improvement in your teaching and your students’ learning.




PHP Beyond the Web


Book Description

Use your existing web-based PHP skills to write all types of software: CLI scripts, desktop software, network servers, and more. This book gives you the tools, techniques, and background necessary to write just about any type of software you can think of, using the PHP you know. PHP Beyond the Web shows you how to take your knowledge of PHP development for the web and utilise it with a much wider range of software systems. Enjoy the benefits of PHP after reading this book: save money by redeploying existing skills, not learning new ones; save time and increase productivity by using a high-level language; and make money by providing your clients a full-stack service (not just websites). PHP is no longer just a great scripting language for websites, it's now a powerful general-purpose programming language. Expand your use of PHP into your back-end systems, server software, data processing services, desktop interfaces, and more. What You'll Learn Write interactive shell scripts Work with system daemons Write desktop software Build network servers Interface with electronics using PHP and the Raspberry Pi Manage performance, deployment, licensing, and system interaction Discover the software tools for development and get other great sources of technical information and help Who This Book Is For Experienced PHP programmers or experienced programmers interested in leveraging PHP outside the web development context. /div