Zephir を使った実験の一環として、現在 PHP PDO を使用して MySQL データベースにアクセスしようとしています。まず第一に、私は比較的無害であることがわかりました
$dbh = new PDO("mysql:host=localhost;dbname=dbn;","user","pwd");
Zephirで翻訳して使用する場合
var dbh = new PDO("mysql:host=localhost;dbname=dbn;","user","pwd");
Zephir が例外をスローしていた
var dbh = new PDO
------------^
私が解決したいくつかの検索によって、これは - new は Zephir の予約語であり、$new に置き換える必要があります。
var dbh = $new PDO("mysql:host=localhost;dbname=dbn;","user","pwd");
すぐに生産した
var dbh = $new PDO(
-----------------^
ZephirにPDO名前空間を使用するよう明示的に指示する必要があることに気付いたときに解決しました
use \PDO;
var dbh = $new \PDO::PDO(
今、
var dbh = $new \PDO::PDO("mysql:host=localhost;dbname=dbn","user","pwd");
私は得る
var dbh = $new \PDO::PDO(...,"user","pwd");
---------------------------------------------^
これは私にはほとんど意味がありません。
私が言えることは、動作する PHP プロトタイプの完全な移植と見なすには、Zephir はまだ若すぎるということです。ただし、PHP アプリケーションのより CPU を集中的に使用するビットのいくつかを移植するのに使用するのに十分なように見えますが、ドキュメントが不足しています。たとえば、ドキュメントのどこにも、配列を使用する正しい方法が
array myArray;
let myArray = [1,2,...];
最初のリストを見逃すと、コンパイラは変更できないと文句を言います。
私の現在の PDO の問題には、明らかに他に何か問題がありますが、それが何であるかはわかりません。助けていただければ幸いです。