Real-world solutions for developing high-quality PHP frameworks and applications /
Presents information and a variety of case studies focusing on creating sustainable applications and frameworks using PHP.
Clasificación: | Libro Electrónico |
---|---|
Autores principales: | , |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Indianapolis, Ind. :
Wiley Pub.,
©2011.
|
Colección: | Wrox guides.
|
Temas: | |
Acceso en línea: | Texto completo Texto completo |
MARC
LEADER | 00000cam a2200000Ma 4500 | ||
---|---|---|---|
001 | EBOOKCENTRAL_ocn739838992 | ||
003 | OCoLC | ||
005 | 20240329122006.0 | ||
006 | m o d | ||
007 | cr zn||||||||| | ||
008 | 110529s2011 inua ob 001 0 eng d | ||
010 | |z 2010939958 | ||
040 | |a COO |b eng |e pn |c COO |d UMI |d N$T |d B24X7 |d YDXCP |d OUP |d E7B |d HEBIS |d EBLCP |d OCLCQ |d DEBSZ |d OCLCQ |d CDX |d OCLCF |d OCLCQ |d AZK |d LOA |d JBG |d AGLDB |d MOR |d PIFAG |d ZCU |d LIV |d MERUC |d OCLCQ |d NJR |d U3W |d BRL |d STF |d WRM |d VTS |d CEF |d NRAMU |d ICG |d INT |d VT2 |d AU@ |d COO |d OCLCQ |d WYU |d OCLCQ |d UAB |d A6Q |d DKC |d OCLCQ |d M8D |d OCLCQ |d UKCRE |d VLY |d BRF |d OCLCO |d OCLCQ |d OCLCO |d OCLCL | ||
019 | |a 750328790 |a 773015602 |a 842961826 |a 961547296 |a 962591326 |a 966233552 |a 988534487 |a 991956597 |a 1037431733 |a 1038630205 |a 1045438797 |a 1058141110 |a 1083597004 |a 1153491176 |a 1162526197 | ||
020 | |a 9781118098226 |q (electronic bk.) | ||
020 | |a 1118098226 |q (electronic bk.) | ||
020 | |a 0470872497 | ||
020 | |a 9780470872499 | ||
020 | |z 9780470872499 |q (pbk. ; |q alk. paper) | ||
020 | |z 0470872497 |q (pbk. ; |q alk. paper) | ||
020 | |z 9781118098240 | ||
020 | |z 9781118098233 | ||
020 | |a 1283397862 | ||
020 | |a 9781283397865 | ||
020 | |a 9786613397867 | ||
020 | |a 6613397865 | ||
024 | 3 | |a 9780470872499 | |
029 | 1 | |a AU@ |b 000050981022 | |
029 | 1 | |a AU@ |b 000051558679 | |
029 | 1 | |a AU@ |b 000052900529 | |
029 | 1 | |a CHNEW |b 000615419 | |
029 | 1 | |a DEBBG |b BV043121131 | |
029 | 1 | |a DEBBG |b BV044154991 | |
029 | 1 | |a DEBSZ |b 368469816 | |
029 | 1 | |a DEBSZ |b 372886205 | |
029 | 1 | |a DEBSZ |b 397002726 | |
029 | 1 | |a DEBSZ |b 421528486 | |
029 | 1 | |a HEBIS |b 291536948 | |
029 | 1 | |a HEBIS |b 299834123 | |
029 | 1 | |a NZ1 |b 14257305 | |
029 | 1 | |a AU@ |b 000073102547 | |
035 | |a (OCoLC)739838992 |z (OCoLC)750328790 |z (OCoLC)773015602 |z (OCoLC)842961826 |z (OCoLC)961547296 |z (OCoLC)962591326 |z (OCoLC)966233552 |z (OCoLC)988534487 |z (OCoLC)991956597 |z (OCoLC)1037431733 |z (OCoLC)1038630205 |z (OCoLC)1045438797 |z (OCoLC)1058141110 |z (OCoLC)1083597004 |z (OCoLC)1153491176 |z (OCoLC)1162526197 | ||
037 | |a CL0500000106 |b Safari Books Online | ||
050 | 4 | |a QA76.73.P224 |b B47 2011eb | |
072 | 7 | |a COM |x 051230 |2 bisacsh | |
072 | 7 | |a COM |x 051240 |2 bisacsh | |
082 | 0 | 4 | |a 005.12 |2 22 |
049 | |a UAMI | ||
100 | 1 | |a Bergmann, Sebastian, |d 1978- |1 https://id.oclc.org/worldcat/entity/E39PCjtBw9rkK3g34g3cbQwgXb | |
245 | 1 | 0 | |a Real-world solutions for developing high-quality PHP frameworks and applications / |c Sebastian Bergmann, Stefan Priebsch. |
260 | |a Indianapolis, Ind. : |b Wiley Pub., |c ©2011. | ||
300 | |a 1 online resource (xxix, 378 pages) : |b illustrations | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
490 | 1 | |a Wrox guides | |
504 | |a Includes bibliographical references and index. | ||
505 | 0 | 0 | |g Machine generated contents note: |g ch. 1 |t Software Quality -- |t External Quality -- |t Internal Quality -- |t Technical Debt -- |t Constructive Quality Assurance -- |t Clean Code -- |t Explicit and Minimal Dependencies -- |t Clear Responsibilities -- |t No Duplication -- |t Short Methods with Few Execution Branches -- |t Software Metrics -- |t Cyclomatic Complexity and npath Complexity -- |t Change Risk Anti-Patterns (CRAP) Index -- |t Non-Mockable Total Recursive Cyclomatic Complexity -- |t Global Mutable State -- |t Cohesion and Coupling -- |t Tools -- |t PHPUnit -- |t phploc -- |t PHP Copy-Paste-Detector (phpcpd) -- |t PHP Dead Code Detector (phpdcd) -- |t PHP Depend (pdepend) -- |t PHP Mess Detector (phpmd) -- |t PHP CodeSniffer (phpcs) -- |t bytekit-cli -- |t PHP CodeBrowser (phpcb) -- |t CruiseControl and phpUnderControl -- |t Hudson -- |t Arbit -- |t Conclusion -- |g ch. 2 |t Software Testing -- |t Black Box and White Box Tests -- |t How Many Tests Are Needed? -- |t System Tests -- |t Browser Testing -- |t Automated Tests -- |t Test Isolation -- |t Acceptance Tests. |
505 | 0 | 0 | |t Limits of System Tests -- |t Unit Tests -- |t Return Values -- |t Dependencies -- |t Side Effects -- |t Real-Life Example -- |t Analyzing the Code to Test -- |t Setting Up a Test Environment -- |t Avoid Global Dependencies -- |t Test Independently from Data Sources -- |t Testing Asynchronous Events -- |t Storing Changes in the Database -- |t Unpredictable Results -- |t Encapsulating Input Data -- |t Further Reflections -- |t Conclusion -- |g ch. 3 |t TYPO3: The Agile Future Of A Ponderous Project -- |t Introduction -- |t The History of TYPO3: Thirteen Years in Thirteen Paragraphs -- |t Daring to Start Over! -- |t Our Experience with Testing -- |t Policies and Techniques -- |t Bittersweet Elephant Pieces -- |t Test-Driven Development -- |t Tests as Documentation -- |t Continuous Integration -- |t Clean Code -- |t Refactoring -- |t Programming Guidelines -- |t Domain-Driven Design -- |t Course of Action in Development -- |t Developing New Code -- |t Extending and Modifying Code -- |t Optimizing Code -- |t Speed -- |t Readability -- |t Finding and Fixing Bugs -- |t Disposing of Old Code -- |t Test Recipes -- |t Inadvertently Functional Unit Test. |
505 | 0 | 0 | |t Access to the File System -- |t Constructors in Interfaces -- |t Testing Abstract Classes -- |t Testing Protected Methods -- |t Use of Callbacks -- |t Into the Future -- |g ch. 4 |t Unit Testing Bad Practices -- |t Why Test Quality Matters -- |t Bad Practices and Test Smells -- |t Duplication in Test Code -- |t Assertion Roulette and Eager Test -- |t Fragile Test -- |t Obscure Test -- |t Problems with Global State -- |t Indirect Testing -- |t Obscure Test Names -- |t Lying Test -- |t Slow Test -- |t Conditional Logic in Tests -- |t Self-validating Tests -- |t Web-surfing Tests -- |t Mock Overkill -- |t Skip Epidemic -- |t Conclusion -- |g ch. 5 |t Quality Assurance At Digg Inc -- |t Problems We Are Facing -- |t Legacy Code Base -- |t How Do We Solve These Problems? -- |t Size Does Matter -- |t Team Size -- |t Project Size -- |t Code Size -- |t Unit Testing and You -- |t Choosing a Testing Framework -- |t Working with an Expert -- |t One Week in a Room -- |t Training Our Team -- |t Writing Testable Code -- |t Avoid Static Methods -- |t Dependency Injection -- |t Mock Objects -- |t Overview -- |t Database -- |t Loosely Coupled Dependencies -- |t Subject/Observer for Testing Class Internals. |
505 | 0 | 0 | |t Memcached -- |t Mocking a Service-Oriented Architecture -- |t Model -- |t Service Query -- |t Service Endpoint -- |t The Base Classes -- |t Digg's Quality Assurance Process -- |t Testing -- |t Planning the Testing Effort -- |t Tasks -- |t Automation -- |t Benefits -- |t Testing Early -- |t Testing Often -- |t Challenges -- |t Conclusion -- |g ch. 6 |t Testing Service-Oriented APIS -- |t The Problems -- |t Solutions -- |t API Credentials -- |t API Limits -- |t Offline Testing of Service Protocols -- |t Offline Testing of Concrete Services -- |t Conclusion -- |g ch. 7 |t Testing A Webdav Server -- |t About the eZ WebDAV Component -- |t WebDAV -- |t Architecture -- |t Development Challenges -- |t Requirements Analysis -- |t TDD after RFC -- |t Testing a Server -- |t Automated Acceptance Tests with PHPUnit -- |t Capturing Test Trails -- |t Test Recipe -- |t Integration into PHPUnit -- |t A Custom Test Case -- |t The Acceptance Test Suite -- |t Acceptance Tests by Example -- |t Conclusion -- |g ch. 8 |t Testing Symfony And Symfony Projects -- |t Testing a Framework -- |t The symfony Release Management Process -- |t Long-term Support -- |t Code Coverage -- |t Tests versus Real Code. |
505 | 0 | 0 | |t Running the Test Suite -- |t Main Lessons Learned -- |t Never Use the Singleton Design Pattern in PHP -- |t Decouple Your Code with Dependency Injection -- |t Lower the Number of Dependencies between Objects with an Event Dispatcher -- |t Testing Web Applications -- |t Lowering the Barrier of Entry of Testing -- |t Unit Tests -- |t Easy to Install -- |t Easy to Learn -- |t Fun to Use -- |t Functional Tests -- |t The Browser Simulator -- |t The Fixtures -- |t The CSS3 Selectors -- |t Testing Forms -- |t Debugging -- |t Conclusion -- |g ch. 9 |t Testing The EZCgraph Component -- |t Development Philosophy -- |t Graph Component -- |t Architecture -- |t Test Requirements -- |t Driver Mocking -- |t Mock the Driver -- |t Multiple Assertions -- |t Structs -- |t Expectation Generation -- |t Conclusion -- |t Testing Binary Data -- |t The Drivers -- |t Expectation Generation -- |t SVG -- |t XML Comparison -- |t Floating-point Problems -- |t Bitmap Creation -- |t Bitmap Comparison -- |t GD Version Differences -- |t Flash -- |t The Assertion -- |t Conclusion -- |g ch. 10 |t Testing Database Interaction -- |t Introduction -- |t Reasons Not to Write Database Tests. |
505 | 0 | 0 | |t Why We Should Write Database Tests -- |t What We Should Test -- |t Writing Tests: Mocking Database Connections -- |t Writing Tests: PHPUnit Database Extension -- |t The Database Test Case Class -- |t Establishing the Test Database Connection -- |t Creating Data Sets -- |t XML Data Sets -- |t Flat XML Data Sets -- |t CSV Data Sets -- |t YAML Data Sets -- |t Database Data Sets -- |t Data Set Decorators -- |t Generating Data Sets -- |t Data Operations -- |t Creating Tests -- |t Testing the Loading of Data -- |t Testing the Modification of Data -- |t Using the Database Tester -- |t Applying Test-Driven Design to Database Testing -- |t Using Database Tests for Regression Testing -- |t Testing Problems with Data -- |t Testing Problems Revealed by Data -- |t Conclusion -- |g ch. 11 |t Quality Assurance At studiVZ -- |t Introduction -- |t About studiVZ -- |t Acceptance Tests -- |t Acceptance Tests in Agile Environments -- |t Selenium -- |t The Selenium Extension of PHPUnit -- |t The Technical Setup of studiVZ -- |t Development Environment -- |t Test Environment -- |t Best Practices -- |t Sins of Our Youth -- |t Monolithic Tests -- |t Static Users. |
505 | 0 | 0 | |t Strategy Change -- |t Atomic Tests with Dynamic Test Data -- |t Robust Selenium Tests -- |t Test Scope Must Be Clear -- |t Common Functionality or Browser Compatibility as Well? -- |t Fix Tests Right Away! -- |t Stabilize Locators, and Use IDs -- |t Speed, the Sore Subject -- |t Recipes for Last-Minute Features -- |t Tests Are Software Too -- |t Capture and Replay versus Programming Tests -- |t The Team: A Good Mix -- |t We Need a DSL -- |t Internal DSL -- |t Testing_SeleniumDSL 1.0 -- |t Problem: Context Sensitivity -- |t Testing_SeleniumDSL 2.0, A Draft -- |t State and Outlook on Version 2.0 -- |t Conclusion -- |g ch. 12 |t Continuous Integration -- |t Introduction -- |t Continuous Integration -- |t Configuration -- |t Build Management and Automated Tests -- |t Version Management -- |t Continuous Integration -- |t Static Analysis -- |t Code Clones -- |t Refactoring -- |t Software Metrics -- |t Classic Metrics -- |t Object-Oriented Metrics -- |t RATS -- |t Installation -- |t Configuration -- |t Static Tests -- |t Programming Conventions -- |t Coding Guidelines -- |t Gradual Introduction into Legacy Projects -- |t Coding Standards in the Daily Work. |
505 | 0 | 0 | |t Syntax Analysis -- |t Dynamic Tests -- |t Reporting -- |t Notification in the Case of Errors -- |t Statistics -- |t PHP CodeBrowser -- |t Deliverables -- |t Operations -- |t Advanced Topics -- |t Continuous Deployment -- |t Using a Reverse Proxy -- |t Continuous Integration and Agile Paradigms -- |t Conclusion -- |g ch. 13 |t Swoodoo: A True Agile Story -- |t Introduction -- |t Evolution: Only the Strong Survive -- |t How We Reached the eXtreme Side -- |t And While We Are Working -- |t The Art of Evolution -- |t Lack of Experience -- |t The Java-developer-coding-in-PHP Phenomenon -- |t The Nobody-but-me-understands-my-code Developer -- |t Conclusion -- |g ch. 14 |t Usability -- |t Anything Goes, But What Is the Price? -- |t Design Aspects -- |t Accessibility -- |t Readability -- |t Labels for Form Elements -- |t Navigating by Keyboard -- |t Effective Contrast -- |t Logo Links to Home Page -- |t Alternative Texts for Images -- |t Background Image in Background Color -- |t Usable Print Version -- |t Visible Links -- |t Good Bookmarks -- |t No Frames -- |t Scalable Fonts -- |t Technical Aspects -- |t Performance -- |t Semantic Code -- |t Fewer Requests -- |t CSS Sprites. |
505 | 0 | 0 | |t JavaScript on Bottom, CSS on Top -- |t Link CSS Instead of Importing -- |t JavaScript -- |t User Guidance -- |t The "Fold" Myth -- |t Feedback on Interaction -- |t Navigation -- |t Pop-ups and Other Annoyances -- |t Habits and Expectations -- |t Fault Tolerance and Feedback -- |t Testing Usability -- |t Conclusion -- |g ch. 15 |t Performance Testing -- |t Introduction -- |t Tools -- |t Environmental Considerations -- |t Load Testing -- |t Apache Bench -- |t Pylot -- |t Other Load Testing Tools -- |t Profiling -- |t Callgrind -- |t KCachegrind -- |t APD -- |t Xdebug -- |t XHProf -- |t OProfile -- |t System Metrics -- |t strace -- |t Sysstat -- |t Custom Instrumentation -- |t Common Pitfalls -- |t Development versus Production Environments -- |t CPU Time -- |t Micro-Optimizations -- |t PHP as the Glue -- |t Priority of Optimization -- |t Conclusion -- |g ch. 16 |t Security -- |t What Is Security? -- |t Secure by Design -- |t Operations -- |t Physical Access. |
505 | 0 | 0 | |t Software Development -- |t No Security by Obscurity -- |t Separation of Concerns -- |t A Matter of Rights -- |t Error Handling -- |t Basic Settings -- |t What Does Security Cost? -- |t The Most Common Problems -- |g A10. |t Unvalidated Redirects and Forwards -- |g A9. |t Insufficient Transport Layer Protection -- |g A8. |t Failure to Restrict URL Access -- |g A7. |t Insecure Cryptographic Storage -- |g A6. |t Security Misconfiguration -- |g A5. |t Cross Site Request Forgery (CSRF/XSRF) -- |g A4. |t Insecure Direct Object References -- |g A3. |t Broken Authentication and Session Management -- |g A2. |t Cross-Site Scripting (XSS) -- |g A1. |t Injection -- |t Conclusion -- |g ch. 17 |t Conclusion. |
520 | |a Presents information and a variety of case studies focusing on creating sustainable applications and frameworks using PHP. | ||
546 | |a English. | ||
590 | |a ProQuest Ebook Central |b Ebook Central Academic Complete | ||
590 | |a O'Reilly |b O'Reilly Online Learning: Academic/Public Library Edition | ||
650 | 0 | |a PHP (Computer program language) | |
650 | 0 | |a Application software |x Development. | |
650 | 6 | |a PHP (Langage de programmation) | |
650 | 6 | |a Logiciels d'application |x Développement. | |
650 | 7 | |a COMPUTERS |x Software Development & Engineering |x General. |2 bisacsh | |
650 | 7 | |a COMPUTERS |x Software Development & Engineering |x Systems Analysis & Design. |2 bisacsh | |
650 | 7 | |a Application software |x Development |2 fast | |
650 | 7 | |a PHP (Computer program language) |2 fast | |
700 | 1 | |a Priebsch, Stefan. |4 aut | |
758 | |i has work: |a Real-world solutions for developing high-quality PHP frameworks and applications (Text) |1 https://id.oclc.org/worldcat/entity/E39PCGt4wT4h3W6m7YjQHQ4hjK |4 https://id.oclc.org/worldcat/ontology/hasWork | ||
776 | 0 | 8 | |i Print version: |a Bergmann, Sebastian, 1978- |t Real-world solutions for developing high-quality PHP frameworks and applications. |d Indianapolis, IN : Wiley Pub., ©2011 |z 9780470872499 |z 0470872497 |w (OCoLC)635494699 |
830 | 0 | |a Wrox guides. | |
856 | 4 | 0 | |u https://ebookcentral.uam.elogim.com/lib/uam-ebooks/detail.action?docID=706824 |z Texto completo |
856 | 4 | 0 | |u https://learning.oreilly.com/library/view/~/9780470872499/?ar |z Texto completo |
938 | |a Books 24x7 |b B247 |n bks00041177 | ||
938 | |a Coutts Information Services |b COUT |n 20576022 |c 29.99 GBP | ||
938 | |a ProQuest Ebook Central |b EBLB |n EBL706824 | ||
938 | |a ebrary |b EBRY |n ebr10513956 | ||
938 | |a EBSCOhost |b EBSC |n 391500 | ||
938 | |a YBP Library Services |b YANK |n 3650559 | ||
938 | |a YBP Library Services |b YANK |n 12670248 | ||
994 | |a 92 |b IZTAP |