[FX.php List] Re: FX.php_List Digest, Vol 33, Issue 16

John Lannon jlannon at gmail.com
Fri Apr 13 14:13:09 MDT 2007


Dan,

Yeah, that's just what I had imagined: one can bypass the config file by
passing the config arguments directly from the controller. That's exactly
what I've done in the past, but your config file is a big time saver with
single FM server applications (which, I imagine, would encompass a majority
of FM-based web apps).

I'll email you a link to the FM/Web app page once I get it up and running
(still working on the design).

Keep up the good work.

John Lannon

Anvil Automation
http://www.anvilautomation.com


> Message: 2
> Date: Fri, 13 Apr 2007 15:49:25 -0400
> From: DC <dan.cynosure at dbmscan.com>
> Subject: Re: [FX.php List] Re: FX.php_List Digest, Vol 33, Issue 15
> To: "FX.php Discussion List" <fx.php_list at mail.iviking.org>
> Message-ID: <461FDEC5.9010906 at dbmscan.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> 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
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
> End of FX.php_List Digest, Vol 33, Issue 16
> *******************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.iviking.org/pipermail/fx.php_list/attachments/20070413/0140ea79/attachment-0001.html


More information about the FX.php_List mailing list