[FX.php List] Re: FX.php_List Digest, Vol 33, Issue 15
Vision Computer Consulting
info at visioncomputerconsulting.com
Mon Apr 16 23:03:02 MDT 2007
DC,
Very cool. Thank you.
Stephen
On Apr 16, 2007, at 9:53 PM, DC wrote:
> hi stephen,
>
> the CIFX class was sent in the email i posted last week along with
> step by step instructions. there is currently no download location
> - just follow the steps in the email - including copy/pasting code.
>
> let me know if you can't find the email i sent last week, i'll send
> another directly to you.
>
> dan
>
>
> On Apr 16, 2007, at 10:15 PM, Vision Computer Consulting wrote:
>
>> I am interested in CIFX. Where can I find it?
>>
>> Thanks.
>>
>> Stephen
>>
>> On Apr 13, 2007, at 12:49 PM, DC wrote:
>>
>>> cool. thanks for the note. i'll definitely post these
>>> instructions around but i wanted to get a little more feedback to
>>> refine the ideas.
>>>
>>> i see what you mean about the config file - i just thought it was
>>> so nice to have that data tucked in the CI config directory. of
>>> course, since the CIFX class can accept an array sent to its
>>> constructor you could just pass that information in the new call
>>> to CIFX like this:
>>>
>>> $config['dataServer']='127.0.0.1';
>>> $config['dataPort']='591';
>>> $config['dataType']='FMPro5/6'; // or FMPro7
>>> $config['dataURLType']='http';
>>> $this->load->library('CIFX', $config);
>>>
>>> so, if you have the call in a controller you can still use FX to
>>> target any server you want.
>>>
>>> i'll be working through other CI-FX issues in the near future so
>>> please send me your Filemaker/PHP frameworks resource link!
>>>
>>> dan
>>>
>>> John Lannon had written:
>>>> Hey Dan,
>>>> Thanks a lot for the post, it's an extremely useful
>>>> contribution. I've been using CI with Filemaker and other
>>>> backends for several projects in the past year and am glad to
>>>> see that others are starting to adopt web application
>>>> frameworks. I personally don't know how I used to build web apps
>>>> without CI (or Rails or CakePHP, take your pick).
>>>> In any case, I definitely think you should submit your tutorial
>>>> to the CI wiki and to other Filemaker forums as well. I spent a
>>>> bit of time tooling with the FX class and using a new
>>>> constructor for CI, but scrapped that idea (not OO enough, I
>>>> guess). Wrapping FX in the CIFX class makes sense and conforms
>>>> to PHP's OO standards. I would definitely like to use your idea
>>>> in future projects ...
>>>> The only thing I would add is that by passing the basic
>>>> parameters to CIFX via the configuration file, one would tie
>>>> oneself to a single data source. Although I would imagine that
>>>> most users would only use one data source ( i.e., one Filemaker
>>>> Server machine), I've been on a project or two in which multiple
>>>> Filemaker sources are used. In this case, the static config file
>>>> would be insufficient. I'd have to check the most recent CI
>>>> docs, but I believe one can pass configuration arguments to
>>>> their library directly (bypassing the default config file), but
>>>> by doing so, the config file becomes inaccessible. So, I would
>>>> add a note to your step 4 mentioning this.
>>>> I have been working on a web resource that provides information
>>>> about integrating Filemaker with web development frameworks. If
>>>> you're interested in helping out, please feel free to email me.
>>>> Thanks,
>>>> John Lannon
>>>> Anvil Automation
>>>> http://www.anvilautomation.com
>>>> Message: 5
>>>> Date: Fri, 13 Apr 2007 12:29:59 -0400
>>>> From: DC <dan.cynosure at dbmscan.com
>>>> <mailto:dan.cynosure at dbmscan.com>>
>>>> Subject: [FX.php List] REDO-FX.php as a Library in CodeIgniter
>>>> framework
>>>> To: "FX.php Discussion List" < fx.php_list at mail.iviking.org
>>>> <mailto:fx.php_list at mail.iviking.org>>
>>>> Message-ID: < 461FB007.9010609 at dbmscan.com
>>>> <mailto:461FB007.9010609 at dbmscan.com>>
>>>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>>> Hi,
>>>> OO-ps... I didn't follow OO practices when submitting my
>>>> integration
>>>> technique. I've redone steps 3, 4, and 5 so that you do not
>>>> modify
>>>> FX.php at all - you simply extend it using PHP's OO
>>>> capability. The
>>>> full
>>>> instructions with (easier) redone steps follow.
>>>> -------------------------------------------
>>>> I put together what I think is the cleanest integration
>>>> possible between
>>>> FX.php and CodeIgniter (CI). It's pretty easy to do.
>>>> If you are looking for a good way of expanding your PHP
>>>> horizons,
>>>> CodeIgniter is a good way to do it. If you haven't seen
>>>> CodeIgniter,
>>>> head over to http://codeigniter.com <http://codeigniter.com> to
>>>> check it out. In short, it is a
>>>> PHP Framework that helps you organize code and offers nice
>>>> integrated
>>>> libraries. It is also PHP4 and 5 friendly, highly object-
>>>> oriented, and
>>>> extendable.
>>>> I've been testing out FX.php with CI and I like it a lot.
>>>> Here's how I got my set up working:
>>>> 1) Download, install and configure CI per the very good
>>>> instructions at
>>>> the site. If you have problems, the CI forum is helpful. It
>>>> should take
>>>> less than an hour for an intermediate PHP person to get to
>>>> hello world
>>>> (welcome_message.php). Time: 1 hour.
>>>> 2) Once you've got CI running, put the latest copy of FX.php,
>>>> FX_Error.php, and FX_constants.php in CI's application/
>>>> libraries/
>>>> directory. Time: 5 minutes tops.
>>>> ....THIS STEP CHANGED from previous message....
>>>> 3) Drop this class extension into the same directory with
>>>> FX.php (CI's
>>>> application/libraries/ directory).
>>>> <?php if (!defined('BASEPATH')) exit('No direct script access
>>>> allowed');
>>>> /
>>>> *------------------------------------------------------------------
>>>> */
>>>> // DEC 20070413 wrapper for CI integration
>>>> // needs to be able to init with params in an array
>>>> // load these using config file FX.php
>>>> /
>>>> *------------------------------------------------------------------
>>>> */
>>>> require('FX.php');
>>>> class CIFX extends FX {
>>>> function CIFX ($params)
>>>> {
>>>> parent::FX(
>>>> $params['dataServer'],
>>>> $params['dataPort'],
>>>> $params['dataType'],
>>>> $params['dataURLType']
>>>> );
>>>> }
>>>> }
>>>> ?>
>>>> This class extension for FX.php lets CI load FX.php with an
>>>> array as an
>>>> argument. External libraries like FX.php need no direct
>>>> modifications to
>>>> integrate with CI properly - just extend them with a wrapper
>>>> function
>>>> that accepts arrays and passes them on.
>>>> In summary, you need a new class called CIFX which will be
>>>> the new
>>>> constructor. It translates the array passed in by the CI
>>>> class loader
>>>> into the 4 parameters the normal FX.php constructor can
>>>> understand.
>>>> Time: Another 5 minutes, tops.
>>>> ....THIS STEP CHANGED from previous message...
>>>> 4) Make a file called CIFX.php (the same name as the class
>>>> so CI can
>>>> load it automatically) and put it in CI's application/config/
>>>> directory.
>>>> It should contain the data that is normally found in
>>>> server_data.php in
>>>> the FX.php distribution but formatted like a PHP file like
>>>> this:
>>>> <?php if (!defined('BASEPATH')) exit('No direct script access
>>>> allowed');
>>>> /*
>>>>
>>>> |------------------------------------------------------------------
>>>> --------
>>>> | FX FMP database access data
>>>>
>>>> |------------------------------------------------------------------
>>>> --------
>>>> */
>>>> $config['dataServer']=' 127.0.0.1 <http://127.0.0.1>';
>>>> $config['dataPort']='591';
>>>> $config['dataType']='FMPro5/6'; // or FMPro7
>>>> $config['dataURLType']='http';
>>>> ?>
>>>> CI will load this data and pass it to the new CIFX.php class
>>>> constructor
>>>> for you - it can do that because the names are the same.
>>>> Time: 5 more
>>>> minutes.
>>>> ....THIS STEP CHANGED from previous message...
>>>> 5) Almost there... make a "controller" file called
>>>> "search.php" and put
>>>> it in the application/controllers/ directory with this PHP
>>>> code (modify
>>>> the database, layout and field data):
>>>> <?php
>>>> class Search extends Controller {
>>>> function Search()
>>>> {
>>>> parent::Controller();
>>>> }
>>>> function id($id)
>>>> {
>>>> // CI knows where to find the
>>>> // CIFX.php FX wrapper file at
>>>> // CI path: application/libraries/CIFX.php
>>>> // FMP WPE data (IP, port, server version,
>>>> // and url scheme) is in custom config file at
>>>> // CI path: application/config/CIFX.php
>>>> $this->load->library('CIFX');
>>>> // tell FX which DB, layout to use and
>>>> // how many records to return
>>>> $this->cifx->SetDBData('database.fp5', 'layout', 1);
>>>> // build a find request, field name, data, comparison
>>>> $this->cifx->AddDBParam ('id', $id, 'eq');
>>>> // do find, return dataset, no flattening, meta object
>>>> $res = $this->cifx->DoFXAction(FX_ACTION_FIND, TRUE,
>>>> TRUE);
>>>> echo '<pre>';
>>>> print_r($res);
>>>> echo '</pre>';
>>>> }
>>>> }
>>>> ?>
>>>> This AddDBParam example assumes you have a database with the
>>>> fieldname
>>>> 'id' - you, of course, can change that to suit. I suggest
>>>> just pointing
>>>> the FX requests to a database you've already got set up and
>>>> working.
>>>> Time: If you use a database already set up, 5 minutes to
>>>> modify this
>>>> code and fire it up.
>>>> 6) Point your browser to:
>>>> http://example.com/path_to_CI/index.php/search/id/1
>>>> Note: if you followed the CI install instructions on how to
>>>> use an
>>>> .htaccess file to use mod_rewrite for nice urls, then you
>>>> can drop the
>>>> index.php and just use:
>>>> http://example.com/path_to_CI/search/id/1
>>>> ....THIS DESCRIPTION CHANGED from previous message...
>>>> CI takes the URL segments and loads one as a controller file
>>>> (search),
>>>> calls one as a function (id), and passes the last one as a
>>>> variable (1)
>>>> for your id() controller function to use as a search
>>>> parameter. Nice and
>>>> sweet. It's a great way of organizing projects!
>>>> Let me know if you have problems with this. I'd like to get
>>>> a little
>>>> feedback from the FX folks first and then post instructions
>>>> at the CI
>>>> forums.
>>>> Did it take you an hour and 20 minutes? Let me know!
>>>> dan
>>>> -------------------------------------------------------------------
>>>> -----
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>> _______________________________________________
>>> FX.php_List mailing list
>>> FX.php_List at mail.iviking.org
>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>
>>
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
More information about the FX.php_List
mailing list