cvs: peardoc /en/pyrus/extending packagefile.xml

[email protected] ("Greg Beaver")
Newsgroups php.pear.doc
Message-ID <cvscellog1247152759@cvsserver>
cellog		Thu Jul  9 15:19:19 2009 UTC

  Modified files:              
    /peardoc/en/pyrus/extending	packagefile.xml 
  Log:
  complete docs on managing dependencies
  
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/extending/packagefile.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/extending/packagefile.xml
diff -u peardoc/en/pyrus/extending/packagefile.xml:1.1 peardoc/en/pyrus/extending/packagefile.xml:1.2
--- peardoc/en/pyrus/extending/packagefile.xml:1.1	Thu Jul  9 04:53:24 2009
+++ peardoc/en/pyrus/extending/packagefile.xml	Thu Jul  9 15:19:18 2009
@@ -369,7 +369,58 @@
    Finally, setting dependencies can be accomplished in several ways.
   </para>
   <para>
-   This document is a work in progress.
+   <programlisting role="php">
+    <![CDATA[
+<?php
+// setting minimum PHP version required:
+$package->dependencies['required']->php = '5.3.0';
+$package->dependencies['required']->php->min = '5.3.0';
+$package->dependencies['required']->php->min('5.3.0');
+
+// setting minimum PEAR Installer/Pyrus version required:
+$package->dependencies['required']->pearinstaller = '2.0.0a1';
+$package->dependencies['required']->pearinstaller->min = '2.0.0a1';
+$package->dependencies['required']->pearinstaller->min('2.0.0a1');
+
+// setting excluded versions (all deps supporting the <exclude> tag use this syntax):
+$package->dependencies['required']->php->exclude = '5.2.0';
+$package->dependencies['required']->php->exclude('5.2.0')->exclude('5.2.10');
+$package->dependencies['required']->php->exclude('5.2.0', '5.2.10');
+
+// setting OS/architecture requirements:
+$package->dependencies['required']->os['windows'] = true;  // Windows required
+$package->dependencies['required']->arch['386'] = false; // Conflicts with 386 architecture
+
+// saying "this package must be installed" to the installer
+$package->dependencies['required']->package['pear2.php.net/Packagename']->save();
+
+// saying "this package must not be installed"
+$package->dependencies['required']->package['pear2.php.net/Packagename']->conflicts();
+
+// setting up complex versioning requirements
+$package->dependencies['optional']->package['pear2.php.net/Packagename']
+    ->min('1.2.0')
+    ->max('1.3.0')
+    ->recommended('1.2.3')
+    ->exclude('1.3.0', '1.2.2');
+
+// depending on a PECL package
+$package->dependencies['required']->package['pecl.php.net/lua']
+    ->providesextension('lua');
+
+// optionally depending on a core PHP extension
+$package->dependencies['optional']->extension['PDO']->save();
+
+// setting up a dependency group "remotefeatures"
+$package->dependencies['group']->remotefeatures->hint('Remote management capabilities');
+// add dependencies to the group
+$package->dependencies['group']->remotefeatures
+    ->package['pear2.php.net/Foo']->save();
+$package->dependencies['group']->remotefeatures
+    ->extension['curl']->save();
+?>
+    ]]>
+   </programlisting>
   </para>
  </section>
  <section xml:id="pyrus.extending.packagefile.files">
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.