caniuse.com but for PHP - a searchable list of new and deprecated features in recent PHP versions

Overview

caniphp.com

caniphp.com is like caniuse.com but for PHP features. It's a simple search of PHP features that added, deprecated and removed in recent versions of PHP (v5.6+).

This is NOT a list of ALL PHP features/functions/methods/classes and when they were added/removed.

The tool is intended for developers who know a feature was added/removed in a recent version of PHP and want to check which versions of the language the feature is supported in.

I'm hand curating the information as there does not appear to be an easily machine-readable and definitive source. As such, not all features are added yet and more will be added over time.

I would love you to pull-request any missing or incorrect data.

It's built with:

Setup and build

If you want to contribute there is a very simple build process that will hopefully stand the test of time.

Start by:

  • Cloning the repository
  • Running npm install

Then to build the CSS using Tailwind you can either:

  • ./build.sh for a one off build or
  • ./watch.sh to run a file watcher

There is no hot reloading or anything like that.

Contributing

I don't plan changing this tool much. But I'm aware that the feature list is not complete and the design needs work (this is not a strength of mine).

So I'm happy to take PR's to add PHP features or improve the design.

I'd also love PRs to add translations. Maybe contact me first or open an issue if you want to do that so we can discuss a structure.

Code style

Thanks to @GenieTim this project uses Prettier for code style and formatting.

Please run npm run prettier to format code before submitting any PR.

I'm working on getting Git hooks to work and run this on commit.

Adding PHP features

I am manually curating the list of features and related content here. And I'd love for people to help by PR-ing additions.

Features to add to the list will need to meet the following criteria:

  • They were added, deprecated or removed in PHP version 5.6 or greater.

PHP features are listed in features.js. This file is ordered by PHP version (see below for more on this). Hopefully the format of this makes sense. But for reference:

  • the whole thing is a JSON array
  • each entry is an object with the following properties:
    • name: The name of the feature - plain text only
    • description: A description of the feature - HTML is allowed, but may not be styled. <code> tags are fine and backticks will be converted to code tags.
    • keywords: An array of strings. These are used when searching, so add strings that people may use to search for this feature.
    • added: A string for the version of PHP that the feature was added. Must be in the format X.Y, e.g. 7.0. Use 0.0 if this is not known or appropriate.
    • deprecated: A string for the version of PHP that the feature was deprecated. Must be in the format X.Y, e.g. 8.0. Use null if this is not know or appropriate.
    • removed: A string for the version of PHP that the feature was removed. Must be in the format X.Y, e.g. 8.2. Use null if this is not know or appropriate.
    • resources: This is an array of objects representing links to documentation or articles about the feature. Each link object has the following properties:
      • name: The title of the link
      • url: The URL of the link

A sample entry:

    {
        name: 'Spaceship operator',
        description: 'Use <code><=></code> for comparisons for sorting',
        keywords: [
            'short', 'shorthand', 'spaceship', 'space ship', 'comparisons', 'operators', 'sorting'
        ],
        added: '7.0',
        deprecated: null,
        removed: null,
        resources: [
            {
                name: 'Spaceship operator (stitcher.io)',
                url: 'https://stitcher.io/blog/shorthand-comparisons-in-php#spaceship-operator'
            }
        ]
    }

The file is ordered with entries related to the most recent version of PHP at the top, and the oldest version at the bottom.

That means:

  • A feature added in the most recent version of PHP goes at the top of the file.
  • Equally a feature deprecated or removed in the most recent version of PHP will also go at the top of the file.
  • A feature added in the oldest version will go at the bottom of the file. UNLESS it is then deprecated or removed in a newer version.
Comments
Owner
Ross Wintle
Creator, Engineer, Advisor - WordPress, Laravel, PHP, geeking around.
Ross Wintle
Query for CSS brower support data, combined from caniuse and MDN, including version support started and global support percentages.

css-browser-support Query for CSS browser support data, combined from caniuse and MDN, including version support started and global support percentage

Stephanie Eckles 65 Nov 2, 2022
A jQuery plugin for making html tables searchable and sortable with pagination

jQuery.fancyTable A jQuery plugin for making html tables searchable and sortable with pagination. Live demo See a live demo on CodePen Installation Us

null 45 Dec 19, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
CLI tool to update caniuse-lite to refresh target browsers from Browserslist config

Update Browserslist DB CLI tool to update caniuse-lite with browsers DB from Browserslist config. Some queries like last 2 version or >1% depends on a

Browserslist 31 Dec 30, 2022
a jquery searchable select dropdown

Select Search A simple jquery search on select options plugin for your website How To Use Just create an html structure that contains select tag e.g.

Juliver Galleto 1 Sep 25, 2020
logs ROBLOX's updates and new versions

roblox-update-notifier logs ROBLOX's updates and new versions This is meant to be ran in NodeJS, 24/7, using something like pm2. NPM packages required

null 5 Oct 23, 2022
Elizabeth Oyinlade Ojesanmi 10 Sep 14, 2022
A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

marcus-s 24 Oct 4, 2022
A Leaderboard app that pulls from a LeaderboardGameAPI and allows users to view recent scores and add more scores to the score board. Built with HTML5, CSS, JavaScript, and Webpack.

Leaderboard A Leaderboard app that pulls from a LeaderboardGameAPI and allows users to view recent scores and add more scores to the score board. Buil

Steven Ntakirutimana 5 Dec 21, 2022
Front-end for FireNearby service. View recent fires and sign up to receive alerts: caseymm.github.io/fire-nearby

fire-nearby (firenearby service front-end) This application is composed of three pages: Map of recent fires Sign up form to receive alerts About this

Casey Miller 4 Mar 30, 2022
Wallpaper Engine but online-version. (HTML, CSS, JS with jQuery, PHP)

Project Preview - Web Wallpaper Engine About Wallpaper Engine but online-version. View animated wallpapers directly in your browser. Case: Create web-

Dmitry Britov 11 Dec 30, 2022
Fallback for SVG images by automatically creating PNG versions on-the-fly

SVGMagic - Cross browser SVG This repository is no longer actively mainted. It has proven to be very usefull back in 2013, but these days SVGs are sup

Dirk Groenen 596 Jul 27, 2022
🪵 Aggressively find a packages changelog (or releases) between versions.

?? changelogd Aggressively find a packages changelog (or releases) between versions. Status: Early Access Please report any issues ?? Made possible by

Harlan Wilton 8 May 10, 2022
Minimal versions of popular analytics libraries. Reduce the impact of third-party scripts on your application.

minimal-analytics This project aims to provide minimal implementations of popular analytics libraries. It's aimed at users who want to reduce the impa

James Hill 32 Dec 25, 2022
A full documentation on everything we know about Alpha 1.0.16 versions.

Minecraft's Alpha 1.0.16 Versions Before you start, make sure to watch RetroGamingNow's video about this first. Highly influenced (technically a port

_NexTre_ 44 Dec 23, 2022
This is a To-Do List. It shows a minimalist design with the next features: Add new tasks, edit tasks, markup completed tasks, and erase all completed tasks. Built with JavaScript.

Project Name To Do List Built With HTML CSS JavaScript Live Demo To do List Live Demo Link Getting Started This is a To Do List. It shows a minimalist

Santiago Cárdenas 6 Jun 9, 2022