mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
177 lines
6.9 KiB
Plaintext
Executable File
177 lines
6.9 KiB
Plaintext
Executable File
|
|
I N S T A L L I N G P R O P E L
|
|
==================================
|
|
|
|
This is a quick guide for installing Propel and building the provided sample
|
|
bookstore application. For more information on installation / configuration
|
|
see the online user guide available from main site: http://propel.phpdb.org
|
|
|
|
|
|
Prerequisites
|
|
-------------
|
|
|
|
Before you can install and run Propel you will need to have the following:
|
|
|
|
* PHP >= 5.0.0
|
|
Propel will only work with PHP5. Additionally, you must have a command-
|
|
line version of PHP5 in order to use PHING to build the classes and SQL
|
|
files for your data model. PHP must also have compiled in XML (libxml2, xsl)
|
|
support in order to take advantage of all build options.
|
|
|
|
* PHING >= 2.0.0
|
|
Propel uses the PHING build system to build the classes and SQL definition
|
|
files for your data model. PHING is an open-source project build system
|
|
based on Apache ANT. PHING 2 is the (development) version built for PHP5.
|
|
See http://phing.tigris.org/ to learn how to install Phing (it's easy).
|
|
|
|
* Creole >- 1.0.0
|
|
Creole is a Uniform DB API framework for PHP5. Creole is available as a PEAR
|
|
package or can be installed in a more traditional manner. See
|
|
http://creole.phpdb.org/ to get a copy of the Creole classes.
|
|
|
|
* A supported RDBMS
|
|
Creole currently supports MySQL, MS SQL Server, PostgreSQL, and SQLite. We
|
|
are working on support for Oracle and the new MySQLi drivers but this should
|
|
be considered alpha, at best.
|
|
|
|
Quick Install (PEAR)
|
|
--------------------
|
|
|
|
It is now possible to install both the Propel runtime and the generator classes as
|
|
PEAR packages. This is the quickest way to get up and running with Propel, but may
|
|
not be quite as easy to configure as the traditional installation method.
|
|
|
|
* Propel Generator:
|
|
|
|
% pear install http://propel.phpdb.org/pear/propel_generator-current.tgz
|
|
|
|
To use the generator to build sql, php classes, etc. simply use the propel-gen shell
|
|
script:
|
|
|
|
% propel-gen /path/to/my/projectdir
|
|
|
|
(See the sample bookstore project directory in your PEAR data directory for a sample
|
|
projectdir.)
|
|
|
|
* Propel Runtime:
|
|
|
|
% pear install http://propel.phpdb.org/pear/propel_runtime-current.tgz
|
|
|
|
It is recommended that you read over the traditional install guide also, so that you
|
|
understand the roles of some of the various files. In the PEAR install these files
|
|
(e.g. the main build.properties and the sample bookstore project) are stored in the
|
|
PEAR data dir (e.g. /usr/local/lib/php/data, C:\PHP\PEAR\data).
|
|
|
|
|
|
Traditional Installation
|
|
------------------------
|
|
|
|
Installation of Propel involves a few steps because Propel is composed of a generator
|
|
and runtime classes which are (now) packaged separately.
|
|
|
|
Begin installation of Propel by choosing a base directory and unpacking the archive.
|
|
|
|
For the sake of simplicity, we'll assume that you are installing from a package
|
|
(instead of CVS) into /var/www/php/.
|
|
|
|
% cd /var/www/php
|
|
% tar zxf /path/to/propel-x.x.x.tar.gz
|
|
% ln -s propel-x.x.x propel
|
|
|
|
A. Propel Generator
|
|
|
|
The Propel generator classes don't need any special setup. The classes and Phing
|
|
scripts are located in the propel-generator/ directory (which in our example is
|
|
/var/www/php/propel/generator).
|
|
|
|
B. Runtime Classes
|
|
|
|
The runtime classes were unpacked to the propel/ directory (in this example,
|
|
/var/www/php/propel). In order to use these classes in runtime applications, you will
|
|
need to make sure that they are on the PHP include_path. In our example, the
|
|
following directory would need to be added to your PHP include_path:
|
|
/var/www/php/propel/classes. You could also copy the
|
|
/var/www/php/propel/classes/propel directory to a location that is already on your
|
|
include_path, e.g. the directory where PEAR classes are located:
|
|
|
|
% cp -r /var/www/php/propel/runtime/classes/propel /usr/local/lib/php/
|
|
|
|
Another option on *nix systems is to create a symlink:
|
|
|
|
% ln -s /var/www/php/propel/runtime/classes/propel /usr/local/lib/php/propel
|
|
|
|
|
|
Quick Test
|
|
----------
|
|
|
|
If you want to quickly test & see whether your installation is working, you can use
|
|
the default configuration which will build the example application using SQLite.
|
|
|
|
Here is how to run the simple test on Unix (use corresponding commands for Windows).
|
|
If you run into trouble, don't panic -- just continue reading the INSTALL guide and
|
|
consult the Installation chapter of the online user guide at http://propel.phpdb.org.
|
|
|
|
Change to your propel-generator dir (e.g.)
|
|
$> cd /var/www/php/propel/generator
|
|
|
|
If using Propel from CVS, copy/rename the build.properties-sample file:
|
|
$> cp build.properties-sample build.properties
|
|
|
|
Run Phing to build the classes and SQL files, specifying the bookstore project
|
|
$> phing -Dproject=bookstore
|
|
|
|
Run the 'insert-sql' target which will add the tables to the SQLite db
|
|
$> phing -Dproject=bookstore insert-sql
|
|
|
|
Run the test script that uses the generated classes against the bookstore db:
|
|
$> cd test/
|
|
$> php -f bookstore-test.php
|
|
|
|
You should see a bunch of output as it tests use cases. Hopefully there aren't any
|
|
"FAILED" messages. If you get a failed message immediately indicating that it can't
|
|
find one of the tables make sure that you a) ran the 'insert'-sql' target and that
|
|
you are running the bookstore-test.php script from the main propel directory *and*
|
|
that you call PHP with the -qC options so that it won't chdir() into the scripts
|
|
directory. (The path for the bookstore.db is ./test/bookstore.db so you can see
|
|
that you need to be in the main propel directory for that to work.)
|
|
|
|
|
|
Configure
|
|
---------
|
|
|
|
To get Propel to work with your own db setup, create a new project (easiest way is
|
|
to use the bookstore project directory as a template). Create your datamodel schema,
|
|
modify the build.properties for that project to specify database connection
|
|
information, and set the db connection runtime properties in runtime-conf.xml.
|
|
|
|
|
|
Build
|
|
-----
|
|
|
|
This assumes that you have already installed and configured a copy of PHING 2.
|
|
|
|
% cd /var/www/php/propel/generator
|
|
% phing -Dproject=mykillerapp
|
|
|
|
This will build the SQL files and the object & peer classes based on your datamodel
|
|
schema XML file.
|
|
|
|
The resulting files will be placed in:
|
|
/var/www/php/propel/generator/projects/mykillerapp/build
|
|
|
|
If you encounter any problems, try adding -verbose or -debug to get more output
|
|
from the PHING build process.
|
|
|
|
|
|
You're Done!
|
|
------------
|
|
|
|
At this point hopefully you have successfully built the classes and SQL definitions
|
|
for the sample bookstore application. If you encountered problems, please visit
|
|
http://propel.phpdb.org to read additional documention, browse through the users
|
|
mailing list, or add a bug report.
|
|
|
|
Enjoy!
|
|
|
|
--$Id: INSTALL,v 1.4 2005/03/24 00:24:07 hlellelid Exp $
|