Generating Code Coverage with PHPUnit and phpdbg

In this post on his Medium page Elton Minetto shows how to generate the code coverage of your PHPunit tests with better performance using phpdbg.

In a previous post (in portuguese) I explained how to identify tests that are taking too long to execute. In this post, I’ll show you how to increase the performance of code coverage report generation using PHPUnit.

In the phpunit.xml file it’s possible to add configurations to generate reports related to the tests that are being executed. […] In addition to changing the phpunit.xml file, to generate this information we also need to install the extension XDebug. However, by installing it we get a substantial decrease in performance.

He shows an example of the time difference in running the tests (about 1 minute without versus 22 with XDebug). He went looking for a better way and found this post talking about using phpdbg instead. He includes the "brew" commands to get everything you’ll need installed and how to use phpdbg with your coverage calls rather than XDebug. However, as is pointed out at the end of the post, the results are slightly different but they’re close enough to help you know what code to target next.

php[architect]: September 2016 Issue Released – Legacy Code of the Ancients

php[architect] magazine has officially announced the release of their September 2016 issue: Legacy Code of the Ancients.

We don’t always have the luxury of working on greenfield projects where we can try out the latest language features, component libraries, or programming techniques. More often, we’re asked to take care of and add features to an application that just works and supports a company or organization’s objectives—like making money to pay salaries. Unless it’s a relatively new project, you are sure to run into corners of the codebase that should be modernized. The trick is to find the time and marshal your team to do so.

Articles in this month’s edition include:

  • "Illuminating Legacy Applications" (Colin DeCarlo)
  • "Legacy Code Needs Love Too" (John Congdon)
  • "Building for the Internet of Things in PHP" (Adam Englander)

The usual columns are there as well including the "Education Station" and "Security Corner". You can pick up your own copy of this month’s issue directly from the php[architect] site. If you just want a sample of the content, check out this month’s free article – "The Modernization of Multiple Legacy Websites".

SitePoint PHP Blog: Nitpicking over Code Standards with Nitpick CI

On the SitePoint PHP blog there’s a new tutorial posted from Bruno Skvorc showing you how to use Nitpick CI to "nitpick" over coding standards and rules in your PHP code.

There are many ways to make sure your code respects a given code standard – we’ve covered several before. But enforcing a standard team-wide and making sure everyone knows about mistakes before they’re applied to the project isn’t something that’s very easy to do. Travis and Jenkins can both be configured to do these checks, but aren’t as easygoing about it as the solution we’re about to look at: Nitpick CI.

He starts by getting a sample project bootstrapped and pushes it up to GitHub so the Nitpick service can access it. He then switches over to the Nitpick side and shows the setup of an account and a new project pointing to the newly created repo. He then includes the process and results of two kinds of pushes: non-code (README update) and both a valid/invalid code update. He shows examples of the comments the Nitpick service makes directly on the code and a patch to fix the issues.

PHP Town Hall Podcast: Episode 48: Code of Conduct

The PHP Town Hall podcast, hosted by PHP community members Phil Sturgeon and Ben Edmunds, has posted their latest episode – a discussion with Jenny Wong about Codes of Conduct and more specifically the effort to try to adopt one for PHP.

Whilst all three of us think a Code of Conduct is a good idea, we talk through some of the various for and against reasoning that people have, and try to outline the logical failures behind some of the FUD being spread around during this discussion.

We cover a few things, from the intent of a Code of Conduct, explain it’s reach is not as scary as many seem to think, outline a few things that a Code of Conduct does not try to do, and talk about some of the problems minorities have at conferences and online which could be simplified over time with a useful CoC.

The goal behind the show is to try and help "open some minds" and bring a constructive approach to discussing the Code of Conduct without the usual (and unfortunate) reactions we’ve already seen from the community. You can listen to this latest podcast through the in-page video player or directly on YouTube. If you enjoy the show and want to check out past and future shows you can subscribe to their RSS feeds.

Zend Developer Zone: Introspecting your Code with Z-Ray for Azure

On the Zend Developer Zone blog Daniel Berman has posted a guide showing how to use their Z-Ray plugin to inspect code running on Azure for statistics around performance, queries and errors thrown by the code.

Quick experimentation, easy collaboration, automated infrastructure and scalability, together with advanced diagnostic and analytical tools – all provide PHP developers with good reasons to develop in the cloud.

[…] The combination of Z-Ray and the Azure cloud means PHP developers building apps on the Azure web app service get the best of both worlds – Z-Ray’s powerful introspection capabilities and Azure’s rich cloud infrastructure.

The post walks you through the steps to create a new Azure-based web application, how to upload your code and enable the Z-Ray feature directly from the Azure "Tools" menu. The Z-Ray toolbar is then automatically injected into your application for your immediate profiling needs.

QaFoo Blog: Analyze the Quality Of Your PHP Code

QaFoo has posted an announcement to their blog about a new tool they’re offering to help developers better visualize the quality of their PHP code with a new visualization tool, the Quality Analyzer.

In code reviews we often browse metrics, source code and reported code issues together with our customers. This leads to discussions about the current state of the code and possible improvements. First we used a bunch of shells scripts for that. In a second step we developed a simple PHP (Open Source) application helping us to do the job. Now we did the third step and rewrote that application into a React based client side (Open Source) application.

They start with an overview of why they created the tool (an evolution of the older Code Review tool) and why it was split into a frontend/backend model to provide easier pipeline integration. They then introduce the functionality in the new tool, based on a D3.js interface. A few screenshots of the interface are also included to give you an idea of how it reports its findings and the dashboard providing an overview of the findings. You can try it out by grabbing it from the project’s GitHub repository. Die Bedeutung von Code Review hat einen neuen Artikel über eine Praxis, die immer beliebter ist in den letzten Jahren dazu beitragen, die Qualität des Codes, das aus der Entwicklung – Code-Reviews .

Jeder Entwickler kennt den Schmerz von banalen Fehler. Eine falsche Attribut hier ein falsch geschriebenes Grundstück befindet, ein versehentlich doppelt Codezeile, die Sie wegen der Kaffee-angeheizt 16 Stunden Hackathon Sie waren verpasst. […] Code Review ist einfach der Akt der jemand anderes auf den Code schauen, um die Fehler, die du verpasst zu finden.

Die Tutorial spricht über die Arten von Code-Reviews (drei von ihnen mit unterschiedlichen Ebenen der Beteiligung) sowie einige Best Practices in Ihrem Bewertungen wie folgt:

  • Kennen Sie Ihre häufigsten Fehler und aktiv bekämpfen.
  • Peer Code Review Mittel durch jemanden von gleichem oder höherem Skill bewertet.
  • Collect Metriken.
  • Denken Sie an den sozialen Aspekt – Auffinden von Fehlern ist gut, nicht schlecht!

Kurt Paynes Blog: User register_tick_function, Ihren Code zu profilieren

Kurt Payne hat einen neuen Beitrag auf seinem Blog zeigt, wie Verwendung register_tick_function mit einem Rückruf für das Benchmarking und das Profil Ihrer Anwendung helfen, seine Schmerzpunkte zu finden.

Ein Profiler gibt Ihnen die Fähigkeit, die Leistung Ihres Codes durch jeden Aufruf der Funktion verfolgen und schaffen einen Überblick über die Performance Ihres Systems über einen gewissen Zeitraum und hilft Ihnen dabei, intelligente Entscheidungen darüber, wo für Probleme zu suchen. […] Aber was, wenn Sie in einer Umgebung, wo man nicht installiert werden kann [die xdebug oder xhprof] Verlängerung bist? Glücklicherweise hat PHP eine eingebaute Funktion namens register_tick_function das gibt Ihnen die Möglichkeit, in jedem Benutzer-Funktion, die nennt sich verhaken. Mit diesem können Sie schreiben selbst einen Profiler.

Ein bisschen Beispielcode veranschaulicht, seine Methode – Er definiert eine „do_profile“-Funktion und weist sie mit dem register_tick_function Anruf. Diese Funktion erzeugt eine Debug-Backtrace und Echos aus der Funktion Weg dauerte es bis zu diesem Punkt zu bekommen (Ausgang ist im Lieferumfang enthalten). Er bietet Code für ein bisschen mehr nützliche Profilierung und weist darauf hin, dass es leicht grafisch visualisieren zu helfen, die Probleme werden konnten. Ebenfalls enthalten sind ein paar Einschränkungen zu beachten, wenn mit dieser Methode des Profiling.

Udemy Blog: Code Wars: PHP vs Rubin vs Python – Wer Supreme [Infografik] Reigns

Auf der Udemy Blog gibt es einen neuen Post mit einer großen Infografik zeigt den Vergleich Ruby „, die höchste herrscht“, Python und PHP (keine Sorge, dies ist nicht flamebait … es ist tatsächlich eine gute Statistik vergleicht den Zustand dieser drei Sprachen).

Genau wie die Japaner, Spanisch und Französisch eindeutig unterschiedlich sind, Programmiersprachen haben auch ihre Variationen, manche immer beliebter und einfacher zu bedienen als andere. Mit der jüngsten Einführung einiger neuer, gibt es einen „Krieg“ der modernen Sprachen. Was ist einfacher und schneller zu bedienen ist nicht immer die beste Option.

Die Grafik enthält Statistiken wie:

  • Usability Bewertungen
  • Beliebtheit in der TIOBE Index
  • Wie viel ist es diskutiert (von der IEEE Spectrum, IRC)
  • Die Zahl der offenen Stellenangebote
  • Durchschnittliche Laufzeit / Zeilen Code

Schauen Sie sich Sie den vollständigen Beitrag für weitere interessante Daten.

Sameer Borate Blog: Source Code Signatures in PHP

In dieser neuen post in seinem Blog Sameer Borate gilt eine interessante Methode zur Entdeckung von Struktur in unbekannten Code – Generierung von Code-Signaturen .

Eine Methode [Ward Cunningham] legt nahe, dass der Zusammenfassung in einer einzigen Zeile wählen Satzzeichen aus jeder Quelldatei. Er nennt dies die Datei „Signatur“. Dies hilft dem Entwickler gauge die Komplexität der Code-Basis.

Er enthält ein paar Beispiele aus den Dateien in WordPress – auf der Suche nach der Struktur der geschweiften Klammern und Semikolons als Trennzeichen für Stücke von Funktionalität. Inbegriffen sind ein paar Zeilen Code, um Ihnen zu generieren eine Signatur aus einer beliebigen Datei und ein Beispiel für ein Ergebnis. Es ist eine interessante Idee, aber ich bin mir nicht sicher, wie praktisch es ist. Es könnte eine hilfreiche Referenz für, wie kompliziert die Datei ist, though.