More Related Content Similar to FMCakeMixってウマいの? (20) FMCakeMixってウマいの?2. • Web
FileMaker Web
2009/10/12 | Kentaro Suzuki
3. • CakePHP
• FMCakeMix
• MVC
• FMCakeMix
•
•
•
•
•
2009/10/12 | Kentaro Suzuki
4. CakePHP
• CakePHP enables PHP web applications. to
rapidly develop robust
users at all levels
Google CakePHP PHP Web
• PHP
Web
•
2009/10/12 | Kentaro Suzuki
5. FMCakeMix
• FMCakeMix: A Full Read/Write Datasource
for FileMaker By Alex Gibbons
• CakePHP FileMaker
• Web (XML)
• FX.php
2009/10/12 | Kentaro Suzuki
6. MVC
MVC
3 Wikipedia
• (Model)
→
• (View)
→
UI
• (Controller)
→
2009/10/12 | Kentaro Suzuki
7. FMCakeMix
• FMCakeMix CakePHP
• ActiveRecord O/R
• Fx FileMaker ...
• SQL
• DBMS
•
•
2009/10/12 | Kentaro Suzuki
8. • FileMaker Server
• Web XML
• CakePHP
• http://cakephp.jp/
• FMCakeMix
• http://github.com/beezwax/FMCakeMix/
• Install the dbo_fmcakemix.php file into yourcakeinstall/app/models/
datasources/dbo
• Fx.php
• FX.php, FX_Error.php, FX_Constants.php, and image_proxy.php files at
the root of the yourcakeinstall/vendors folder.
2009/10/12 | Kentaro Suzuki
9. FileMaker
users
• oreno_db.fp7
• users
• id
• name
• email
※ fmxml
2009/10/12 | Kentaro Suzuki
10. CakePHP
/app/config/database.php
<?php
class DATABASE_CONFIG {
var $default = array(
'driver' => 'fmcakemix',
'database' => 'oreno_db',
'dataSourceType' => 'FMPro7',
'persistent' => false,
'scheme' => 'http',
'port' => 16014,
'host' => '127.0.0.1',
'login' => '',
'password' => '',
'encoding' => 'utf8'
);
}
?>
2009/10/12 | Kentaro Suzuki
13. /app/views/users/index.ctp
<table>
<tr>
<th><?php echo $paginator->sort('#', 'id');?></th>
<th><?php echo $paginator->sort('Name', 'name');?></th>
<th><?php echo $paginator->sort('E-mail', 'email');?></th>
</tr>
<?php foreach($rows as $r): ?>
<tr>
<td><?php echo h($r['User']['id']);?></td>
<td><?php echo h($r['User']['name']);?></td>
<td><?php echo h($r['User']['email']);?></td>
</tr>
<?php endforeach;?>
</table>
<?php echo $paginator->numbers();?>
2009/10/12 | Kentaro Suzuki
14. •
2009/10/12 | Kentaro Suzuki
15. • CakePHP Web
• FMCakeMix CakePHP
• XSS CSRF
2009/10/12 | Kentaro Suzuki
Editor's Notes &#x30AB;&#x30B9;&#x30BF;&#x30E0;Web&#x516C;&#x958B;&#x306E;&#x8A71;&#x3067;&#x3059;&#x3002;&#x8208;&#x5473;&#x306E;&#x3042;&#x308B;&#x65B9;&#x306E;&#x3054;&#x53C2;&#x8003;&#x306B;&#x306A;&#x308C;&#x3070;&#x3046;&#x308C;&#x3057;&#x3044;&#x3067;&#x3059;&#x3002;
&#x305D;&#x3046;&#x3044;&#x3048;&#x3070;&#x3001;&#x67D0;&#x5DE8;&#x5927;&#x63B2;&#x793A;&#x677F;&#x306E;FIleMaker&#x30B9;&#x30EC;&#x30C3;&#x30C9;&#x3067;&#x3082;Web&#x30A2;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306E;&#x8A71;&#x984C;&#x304C;&#x3042;&#x304C;&#x3063;&#x3066;&#x3044;&#x307E;&#x3057;&#x305F;&#x304C;... &#x306F;&#x3044;&#x3001;&#x767A;&#x8868;&#x306E;&#x6982;&#x8981;&#x3067;&#x3059;&#x304C;&#x3001;&#x3061;&#x3087;&#x3063;&#x3068;&#x30AE;&#x30EA;&#x30AE;&#x30EA;&#x3063;&#x307D;&#x3044;&#x306E;&#x3067;&#x3001;&#x65E9;&#x8DB3;&#x3067;&#x3044;&#x304D;&#x307E;&#x3059;&#x3002;
Web&#x516C;&#x958B;&#x306B;&#x8208;&#x5473;&#x304C;&#x3042;&#x308B;&#x3093;&#x3060;&#x3051;&#x3069;&#x3001;&#x610F;&#x5473;&#x4E0D;&#x660E;&#x3067;&#x3057;&#x305F;&#x3002;&#x3068;&#x8A00;&#x3046;&#x65B9;&#x304C;&#x3044;&#x3089;&#x3063;&#x3057;&#x3083;&#x3044;&#x307E;&#x3057;&#x305F;&#x3089;&#x3001;&#x98F2;&#x307F;&#x4F1A;&#x306E;&#x6642;&#x306B;&#x3067;&#x3082;&#x6C17;&#x8EFD;&#x306B;&#x3064;&#x304B;&#x307E;&#x3048;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002; CakePHP&#x306F;&#x30AA;&#x30FC;&#x30D7;&#x30F3;&#x30BD;&#x30FC;&#x30B9;&#x3067;&#x4F5C;&#x6210;&#x3055;&#x308C;&#x3066;&#x3044;&#x308B;&#x3001;PHP&#x306E;Web&#x30A2;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x30D5;&#x30EC;&#x30FC;&#x30E0;&#x30EF;&#x30FC;&#x30AF;&#x3067;&#x3059;&#x3002;
Ruby on Rails&#x306E;&#x5F71;&#x97FF;&#x3092;&#x975E;&#x5E38;&#x306B;&#x53D7;&#x3051;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x3084;&#x306F;&#x308A;&#x300C;&#x8A2D;&#x5B9A;&#x3088;&#x308A;&#x898F;&#x7D04;&#x300D;&#x304C;&#x91CD;&#x8996;&#x3055;&#x308C;&#x3066;&#x304A;&#x308A;&#x3001;&#x5C11;&#x306A;&#x3044;&#x30B3;&#x30FC;&#x30C9;&#x91CF;&#x3067;Web&#x30A2;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3092;&#x69CB;&#x7BC9;&#x3059;&#x308B;&#x3053;&#x3068;&#x304C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002; FMCakeMix&#x306F;&#x3001;&#x524D;&#x8FF0;&#x306E;CakePHP&#x3067;&#x4F7F;&#x7528;&#x3067;&#x304D;&#x308B;FileMaker&#x7528;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x30C9;&#x30E9;&#x30A4;&#x30D0;&#x30FC;&#x3067;&#x3059;&#x3002;
&#x5185;&#x90E8;&#x7684;&#x306B;FX.php&#x3092;&#x5229;&#x7528;&#x3057;&#x3066;&#x3044;&#x308B;&#x306E;&#x3067;&#x3001;&#x30AB;&#x30B9;&#x30BF;&#x30E0;Web&#x516C;&#x958B;&#x6A5F;&#x80FD;&#x306F;XML&#x3092;&#x5229;&#x7528;&#x3059;&#x308B;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002; CakePHP&#x306F;MVC&#x69CB;&#x9020;&#x306E;&#x30A2;&#x30D7;&#x30EA;&#x30B1;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x30D5;&#x30EC;&#x30FC;&#x30E0;&#x30EF;&#x30FC;&#x30AF;&#x3067;&#x3059;&#x304C;&#x3001;MVC&#x3068;&#x3044;&#x3046;&#x8A00;&#x8449;&#x3092;&#x805E;&#x3044;&#x305F;&#x3053;&#x3068;&#x306A;&#x3044;&#x305F;&#x3081;&#x306B;&#x7C21;&#x5358;&#x306B;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x3059;&#x3002;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x3092;&#x3001;&#x30E2;&#x30C7;&#x30EB;&#x3001;&#x30D3;&#x30E5;&#x30FC;&#x3001;&#x30B3;&#x30F3;&#x30C8;&#x30ED;&#x30FC;&#x30E9;&#x3068;&#x3044;&#x3046;3&#x3064;&#x306E;&#x8981;&#x7D20;&#x306B;&#x5206;&#x5272;&#x3059;&#x308B;&#x8003;&#x3048;&#x65B9;&#x3067;&#x3059;&#x3002; FMCakeMix&#x306E;&#x304A;&#x304B;&#x3052;&#x3067;&#x3001;CakePHP&#x306E;&#x30E2;&#x30C7;&#x30EB;&#x304C;&#x5229;&#x7528;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;
CakePHP&#x306E;&#x30E2;&#x30C7;&#x30EB;&#x3067;&#x306F;&#x3001;ActiveRecord&#x30D1;&#x30BF;&#x30FC;&#x30F3;&#x306E;O/R&#x30DE;&#x30C3;&#x30D1;&#x30FC;&#x3001;&#x30A2;&#x30BD;&#x30B7;&#x30A8;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D0;&#x30EA;&#x30C7;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306A;&#x3069;&#x3082;&#x6A5F;&#x80FD;&#x3092;&#x5229;&#x7528;&#x3067;&#x304D;&#x3001;&#x9762;&#x5012;&#x306A;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x51E6;&#x7406;&#x306E;&#x8A18;&#x8FF0;&#x304C;&#x30B7;&#x30F3;&#x30D7;&#x30EB;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;&#x307E;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x304C;&#x62BD;&#x8C61;&#x5316;&#x3055;&#x308C;&#x3001;DBMS&#x3092;&#x5909;&#x66F4;&#x3057;&#x3066;&#x3082;&#x8A2D;&#x5B9A;&#x3092;&#x5909;&#x66F4;&#x3059;&#x308B;&#x3060;&#x3051;&#x3067;&#x79FB;&#x884C;&#x3067;&#x304D;&#x307E;&#x3059;&#x3002;
&#x307E;&#x3055;&#x306B;&#x3001;&#x3042;&#x308A;&#x304C;&#x3068;&#x3046;&#xFF01;FMCakeMix&#x3068;&#x3044;&#x3046;&#x611F;&#x3058;&#x3067;&#x3059;&#x3002; &#x30A4;&#x30F3;&#x30B9;&#x30C8;&#x30FC;&#x30EB;&#x65B9;&#x6CD5;&#x306F;&#x96E3;&#x3057;&#x304F;&#x3042;&#x308A;&#x307E;&#x305B;&#x3093;&#x3002;FMCakeMix&#x306E;User Guide&#x3092;&#x8AAD;&#x3081;&#x3070;&#x7C21;&#x5358;&#x3067;&#x3057;&#x3087;&#x3046;&#x3002; &#x30B5;&#x30F3;&#x30D7;&#x30EB;&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x3092;&#x4F5C;&#x6210;&#x3057;&#x307E;&#x3059;&#x3002;
&#x7C21;&#x5358;&#x306A;&#x69CB;&#x9020;&#x3067;&#x3059;&#x3002;&#x30C6;&#x30FC;&#x30D6;&#x30EB;1&#x3064;&#x3001;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;3&#x3064;&#x3067;&#x3059;&#x3002; CakePHP&#x306E;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x8A2D;&#x5B9A;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x7DE8;&#x96C6;&#x3057;&#x307E;&#x3059;&#x3002;
driver&#x306B;fmcakemix&#x3068;&#x3057;&#x307E;&#x3059;&#x3002;&#x307E;&#x305F;&#x3001;Fx.php&#x540C;&#x69D8;dataSourceType&#x3082;&#x6307;&#x5B9A;&#x3057;&#x3066;&#x304F;&#x3060;&#x3055;&#x3044;&#x3002; &#x3067;&#x306F;&#x3001;CakePHP&#x306E;&#x5B9F;&#x969B;&#x306E;&#x30B3;&#x30FC;&#x30C7;&#x30A3;&#x30F3;&#x30B0;&#x3067;&#x3059;&#x3002;
&#x307E;&#x305A;&#x306F;&#x30E2;&#x30C7;&#x30EB;&#x306E;&#x8A18;&#x8FF0;&#x3092;&#x3057;&#x307E;&#x3059;&#x3002;&#x592A;&#x5B57;&#x306F;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306E;&#x30D1;&#x30B9;&#x3092;&#x8868;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x4ECA;&#x56DE;&#x306E;&#x30B5;&#x30F3;&#x30D7;&#x30EB;&#x3067;&#x306F;&#x6700;&#x4F4E;&#x9650;&#x306E;&#x8A18;&#x8FF0;&#x3001;&#x30C7;&#x30FC;&#x30BF;&#x30D9;&#x30FC;&#x30B9;&#x540D;&#x3068;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x540D;&#x306E;&#x307F;&#x3067;&#x3059;&#x3002; &#x6B21;&#x306B;&#x30E2;&#x30C7;&#x30EB;&#x306E;&#x8A18;&#x8FF0;&#x3092;&#x3057;&#x307E;&#x3059;&#x3002;&#x5148;&#x307B;&#x3069;&#x540C;&#x69D8;&#x3001;&#x592A;&#x5B57;&#x306F;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x306E;&#x30D1;&#x30B9;&#x3067;&#x3059;&#x3002;
7&#x884C;&#x76EE;&#x3067;users&#x30C6;&#x30FC;&#x30D6;&#x30EB;&#x306E;&#x5168;&#x30EC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x53D6;&#x5F97;&#x3057;&#x3066;&#x3001;8&#x884C;&#x76EE;&#x3067;&#x30D3;&#x30E5;&#x30FC;&#x306B;&#x305D;&#x308C;&#x3092;&#x6E21;&#x3057;&#x307E;&#x3059;&#x3002;
4&#x884C;&#x76EE;&#x3067;&#x30DA;&#x30FC;&#x30B8;&#x30CD;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x306E;&#x6307;&#x5B9A;&#x3092;&#x3057;&#x3066;&#x304A;&#x308A;&#x3001;1&#x30DA;&#x30FC;&#x30B8;&#x306B;15&#x4EF6;&#x8868;&#x793A;&#x3059;&#x308B;&#x3088;&#x3046;&#x306B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; &#x6700;&#x5F8C;&#x306B;&#x30D3;&#x30E5;&#x30FC;&#x3092;&#x8A18;&#x8FF0;&#x3057;&#x307E;&#x3059;&#x3002;
<td>&#x306E;&#x90E8;&#x5206;&#x3067;&#x306F;&#x3001;&#x6E21;&#x3055;&#x308C;&#x305F;&#x30C7;&#x30FC;&#x30BF;&#x3092;&#x7E70;&#x308A;&#x8FD4;&#x3057;&#x3066;&#x8868;&#x793A;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x4E0A;&#x306E;<th>&#x3067;&#x306F;&#x3001;&#x30D5;&#x30A3;&#x30FC;&#x30EB;&#x30C9;&#x540D;&#x306E;&#x898B;&#x51FA;&#x3057;&#x3067;&#x3042;&#x308A;&#x3001;&#x30BD;&#x30FC;&#x30C8;&#x30DC;&#x30BF;&#x30F3;&#x306B;&#x306A;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;
&#x6700;&#x5F8C;&#x306E;&#x884C;&#x306F;&#x3001;&#x30DA;&#x30FC;&#x30B8;&#x756A;&#x53F7;&#x306E;&#x30EA;&#x30F3;&#x30AF;&#x30DC;&#x30BF;&#x30F3;&#x3092;&#x8868;&#x793A;&#x3055;&#x305B;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002; &#x3067;&#x306F;&#x5B9F;&#x969B;&#x306B;&#x898B;&#x3066;&#x307F;&#x307E;&#x3057;&#x3087;&#x3046;&#x3002;