Hypertext Preprocessor is a general-purpose programming language!

PHP for Mac

PHP for Mac

  -  20.76 MB  -  Open Source
PHP for Mac is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP for macOS powers everything from your blog to the most popular websites in the world.

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML.

Instead of lots of commands to output HTML (as seen in C or Perl), pages contain HTML with embedded code that does "something" (in this case, output "Hi, I'm a PHP script!"). The code is enclosed in special start and end processing instructions that allow you to jump into and out of "PHP mode."

What distinguishes PHP for macOS from something like client-side JavaScript is that the code is executed on the server, generating HTML which is then sent to the client.

The client would receive the results of running that script, but would not know what the underlying code was. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve.

The best things in using PHP are that it is extremely simple for a newcomer, but offers many advanced features for a professional programmer. Don't be afraid reading the long list of PHP's features.

You can jump in, in a short time, and start writing simple scripts in a few hours.

How to Use

Install PHP via Homebrew with brew install php

Verify installation using php -v

Configure Apache or Nginx to use PHP

Test with a phpinfo() script in your web server

Use Composer to manage PHP dependencies

Write and run PHP scripts in Terminal or browser

Edit scripts using any code editor like VS Code

Update PHP using brew upgrade php

Use php -S localhost:8000 for local testing

System Requirements
  • macOS 10.15 (Catalina) or later
  • At least 4 GB RAM (8 GB recommended)
  • Homebrew package manager
  • Command Line Tools for Xcode
  • Internet connection for installation
PROS
  • Easy installation with Homebrew
  • Native macOS support for Apache
  • Strong community and documentation
  • Compatible with popular IDEs
  • Great for local web development
CONS
  • Older macOS may lack PHP support
  • Configuration can be complex
  • Built-in PHP deprecated in new macOS
  • Performance not optimized by default
  • Compatibility issues with some extensions
Also Available: Download PHP for Windows

What's new in this version:

BCMath:
- Fixed pointer subtraction for scale

Core:
- Fixed property hook backing value access in multi-level inheritance
- Fixed accidentally inherited default value in overridden virtual properties
- Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to child class)

Fixed bug GH-17913 (ReflectionFunction:isDeprecated() returns incorrect results for closures created from magic __call())
- Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks)
- Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in get_object_vars())
- Fixed bug GH-17998 (Skipped lazy object initialization on primed SIMPLE_WRITE cache)
- Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy calls hook again)
- Fixed bug GH-17961 (use-after-free during dl()'ed module class destruction)
- Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown)
- Fixed OSS-Fuzz #403308724
- Fixed bug GH-13193 again (Significant performance degradation in 'foreach')

DBA:
- Fixed assertion violation when opening the same file with dba_open multiple times

DOM:
- Fixed bug GH-17991 (Assertion failure dom_attr_value_write)
- Fix weird unpack behaviour in DOM
- Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased)
- Fix xinclude destruction of live attributes

Fuzzer:
- Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI)

GD:
- Fixed bug GH-17984 (calls with arguments as array with references)

LDAP:
- Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing)

Mbstring:
- Fixed bug GH-17989 (mb_output_handler crash with unset http_output_conv_mimetypes)

Opcache:
- Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal JIT)
- Fixed bug GH-17966 (Symfony JIT 1205 assertion failure)
- Fixed bug GH-18037 (SEGV Zend/zend_execute.c)
- Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken)
- Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c)
- Fixed bug GH-18112 (NULL access with preloading and INI option)
- Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks the exception table)

PDO:
- Fix memory leak when destroying PDORow

Standard:
- Fix memory leaks in array_any() / array_all()

SOAP:
- Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to a segfault)

SPL:
- Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in ArrayObject)
- Treewide
- Fixed bug GH-17736 (Assertion failure zend_reference_destroy())

Windows:
- Fixed bug GH-17836 (zend_vm_gen.php shouldn't break on Windows line endings)