PHPInternals.net. Community Documentation

PHPInternals.net is designed to help the community find and document key information about the internal workings of PHP.

Project Overview

PHP Internals is a site myself and Thomas Punt put together over the course of a year. The site is split into two parts; client application and backend API. My part was building the client application, which uses Angular 4.0.

The Brief

The site main aim was being able to find and document key information about PHP internals. Symbols and categories can be created, edited and deleted by any user. This is all done from the contribution dashboard and new user contributions must be reviewed before being accepted onto the public site.

Front End Technology

I decided to use Angular (v4) for the front end application. Angular allowed me to build a single page application without having to worry about two-way data binding, templating and routing users.

Angular also has an large open source community with lots of modules prebuilt and ready to use. PHPInternals.net use a number of these modules:

NG-RealMark

Markdown was used throughout the project for editing articles, symbols and categories. The markdown module was built specifically for this project.

It is currently open sourced on my GitHub account and available through NPM. NG-RealMark uses Showdown.js for most of the markdown rendering along with Prism.js for the code highlighting.

NG-RealMark module features;

  • Uses Angular HTML sanitiser for any raw HTML
  • Table of contents based on the page headings in the markdown document
  • Preview and Diff web components which are simple to use
  • And a 3 way-merge component for updates made against old versions.

The Homepage

The Homepage

Article Page

Article Page

User Profile Page

User Profile Page

Edit Symbol Page

Edit Symbol Page