Hack HHVM programming productivity without breaking things

How can you take advantage of the HipHop Virtual Machine (HHVM) and the Hack programming language, two new technologies that Facebook developed to run their web servers? With this practical guide, Owen Yamauchi—a member of Facebook’s core Hack and HHVM teams—shows you how to get started with these b...

Descripción completa

Detalles Bibliográficos
Otros Autores: Yamauchi, Owen, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Sebastopol, CA : O'Reilly 2015.
Edición:First edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629698906719
Tabla de Contenidos:
  • Copyright; Table of Contents; Foreword; Preface; What Are Hack and HHVM?; Who This Book Is For; Philosophy; Program Types; Gradual Migration; How the Book Is Organized; Versions; Conventions Used in This Book; Safari® Books Online; How to Contact Us; Acknowledgments; Chapter 1. Typechecking; Why Use the Typechecker?; Setting Up the Typechecker; Autoload Everything; Reading Error Messages; Type Annotation Syntax; Function Return Types; Function Parameters; Properties; Hack's Type System; Typechecker Modes; Code Without Annotations; Calling into PHP; Rules; Using Superglobals
  • Types of Overriding MethodsProperty Initialization; Typed Variadic Arguments; Types for Generators; Fallthrough in switch Statements; Type Inference; Variables Don't Have Types; Unresolved Types; Inference Is Function-Local; Refining Types; Refining Nullable Types to Non-Nullable; Refining Mixed Types to Primitives; Refining Object Types; Inference on Properties; Enforcement of Type Annotations at Runtime; Chapter 2. Generics; Introductory Example; Other Generic Entities; Functions and Methods; Traits and Interfaces; Type Aliases; Type Erasure; Constraints; Unresolved Types, Revisited
  • Generics and SubtypesArrays and Collections; Advanced: Covariance and Contravariance; Syntax; When to Use Them; Chapter 3. Other Features of Hack; Enums; Enum Functions; Type Aliases; Transparent Type Aliases; Opaque Type Aliases; Autoloading Type Aliases; Array Shapes; Lambda Expressions; Constructor Parameter Promotion; Attributes; Attribute Syntax; Special Attributes; Enhanced Autoloading; Integer Arithmetic Overflow; Nullsafe Method Call Operator; Trait and Interface Requirements; Silencing Typechecker Errors; Chapter 4. PHP Features Not Supported in Hack; References; The global Statement
  • Top-Level CodeOld-Style Constructors; Case-Insensitive Name Lookup; Variable Variables; Dynamic Properties; Mixing Method Call Syntax; isset, empty, and unset; Others; Chapter 5. Collections; Why Use Collections?; Collections Have Reference Semantics; Using Collections; Literal Syntax; Reading and Writing; Type Annotations for Collections; Core Interfaces; General Collection Interfaces; Specific Collection Interfaces; Concrete Collection Classes; Interoperating with Arrays; Conversion to Arrays; Use with Built-In and User Functions; Chapter 6. Async; Introductory Examples; Async in Detail
  • Wait HandlesAsync and Callable Types; await Is Not an Expression; Async Generators; Exceptions in Async Functions; Mapping and Filtering Helpers; Structuring Async Code; Data Dependencies; Antipatterns; Other Types of Waiting; Sleeping; Rescheduling; Common Mistakes; Dropping Wait Handles; Memoizing Async Functions; Async Extensions; MySQL; MCRouter and memcached; cURL; Streams; Chapter 7. XHP; Why Use XHP?; Runtime Validation; Secure by Default; How to Use XHP; Basic Tag Usage; Attributes; Embedding Hack Code; Type Annotations for XHP; Object Interface; Validation
  • Creating Your Own XHP Classes