Subject: [bug#36605] [PATCH] gnu: Add php-hello-world.

From: Hartmut Goebel <[email-masked]>
Date: Thu, 11 Jul 2019 22:26:13 +0200

* gnu/packages/php.scm (php-hello-world): New variable.
---
 gnu/packages/php.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 9ccbede..f860f88 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Julien Lepiller <[email-masked]>
 ;;; Copyright © 2016 Marius Bakke <[email-masked]>
+;;; Copyright © 2016 Hartmut Goebel <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,6 +49,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module ((guix licenses) #:prefix license:))
 
 ;; This fixes PHP bugs 73155 and 73159. Remove when gd
@@ -332,3 +334,38 @@ systems, web content management systems and web frameworks." )
               license:lgpl2.1+                              ; ext/bcmath/libbcmath
               license:bsd-2                                 ; ext/fileinfo/libmagic
               license:expat))))                             ; ext/date/lib
+
+(define-public php-hello-world
+  (package
+    (name "php-hello-world")
+    (version "0.1")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((out       (assoc-ref %outputs "out"))
+                (php       (assoc-ref %build-inputs "php"))
+                (index.php (string-append out "/index.php")))
+           (mkdir-p out)
+           (call-with-output-file index.php
+             (lambda (p)
+               (format p "<html>
+ <head><title>PHP test page: Hello, Guix!</title></head>
+ <body>
+ <?php echo '<h1>Hello, Guix!</h1>'; ?>
+ <p>Today is: <?php echo date('Y-m-d'); ?></p>
+ </body>
+</html>~%")))
+           (chmod index.php #o555)))))
+    (inputs
+     `(("php" ,php)))
+    (synopsis "Hello, PHP world: An example PHP package")
+    (description
+     "PHP Hello World creates a simple HTML page saying \"Hello, Guix!\" and
+the current date.  It serves as an example to be used in Guix PHP packages or
+services.")
+    (home-page "http://php.net/manual/en/tutorial.firstpage.php")
+    (license license:gpl3+)))
-- 
2.7.4