More CamelCase
[plcapi.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index b5eeddf..b016c13 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -3,8 +3,8 @@ XMLRPC for PHP
 Requirements
 ------------
 
-The following requirements should be met prior to using 'XMLRPC for PHP': 
-. PHP 5.1.0 or later
+The following requirements should be met prior to using 'XMLRPC for PHP':
+. PHP 5.3.0 or later
 . the php "curl" extension is needed if you wish to use SSL or HTTP 1.1 to
   communicate with remote servers
 
@@ -17,22 +17,66 @@ Installation instructions
 
 Installation of the library is quite easy:
 
-1. copy the contents of the lib/ folder to any location required by your
-   application (it can be inside the web server root or not).
+1. Via Composer (highly recommended):
 
-2. make sure your app can include those files. This can be achieved by setting
-   the PHP include path, either in the php.ini file or directly in the php code
-   of your application, using the 'set_include_path' function
+    1. Install composer if you don't have it already present on your system.
+        Depending on how you install, you may end up with a composer.phar file in your directory.
+        In that case, no worries! Just substitute 'php composer.phar' for 'composer' in the commands below.
 
+    2. If you're creating a new project, create a new empty directory for it.
 
-Example of php code allowing an application to import the library:
+    3. Open a terminal and use Composer to grab the library.
 
-set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/phpxmlrpc/lib/');
-require_once( 'xmlrpc.inc' );
-require_once( 'xmlrpcs.inc' );
-require_once( 'xmlrpc_wrappers.inc' );
+            $ composer require phpxmlrpc/phpxmlrpc:4.0
+
+    4. Write your code.
+        Once Composer has downloaded the component(s), all you need to do is include the vendor/autoload.php file that
+        was generated by Composer. This file takes care of autoloading all of the libraries so that you can use them
+        immediately, including phpxmlrpc:
+
+            // File example: src/script.php
+
+            // update this to the path to the "vendor/" directory, relative to this file
+            require_once __DIR__.'/../vendor/autoload.php';
+
+            use PhpXmlRpc\Value;
+            use PhpXmlRpc\Request;
+            use PhpXmlRpc\Client;
+
+            $client = new Client('http://some/server');
+            $response = $client->send(new Request('method', array(new Value('parameter'))));
+
+    5. IMPORTANT! Make sure that the vendor/phpxmlrpc directory is not directly accessible from the internet,
+        as leaving it open to access means that any visitor can trigger execution of php code such as
+        the built-in debugger.
+
+
+2. Via manual download and autoload configuration
+
+    1. copy the contents of the src/ folder to any location required by your
+        application (it can be inside the web server root or not).
+
+    2. configure your app autoloading mechanism so that all classes in the PhpXmlRpc namespace are loaded
+        from that location (any PSR-4 compliant autoloader can do that)
+
+    3. Write your code.
+
+            // File example: script.php
+
+            require_once __DIR__.'my_autoloader.php';
+
+            use PhpXmlRpc\Value;
+            use PhpXmlRpc\Request;
+            use PhpXmlRpc\Client;
+
+            $client = new Client('http://some/server');
+            $response = $client->send(new Request('method', array(new Value('parameter'))));
+
+    5. IMPORTANT! Make sure that the vendor/phpxmlrpc directory is not directly accessible from the internet,
+        as leaving it open to access means that any visitor can trigger execution of php code such as
+        the built-in debugger.
 
 
 Please note that usage of the 'make' command for installation of the library is
 not recommended, as it will generally involve editing of the makefile for a
-succesfull run.
+successful run.