以前のリビジョンの文書です


A PCRE internal error occured. This might be caused by a faulty plugin

====== [PHP] 公式ドキュメントを生成する ====== ~~socialite~~ [[https://secure.php.net/manual/ja/index.php|PHPの公式ドキュメント]](マニュアル)は環境さえ用意すれば自分でビルドすることができます。 [[http://www.docbook.org/|DocBook]]と呼ばれる仕組みが採用されており、HTML以外にも様々なフォーマットに出力できるため、例えばPDFやePubを生成し、KindleやiBooksなどの電子書籍リーダーで閲覧することも可能です。 ===== phdのインストール ===== PHPのドキュメントを生成するコマンド「PhD」のインストールを最初に行います。PEARが利用できればそれほど難しくはありません。 <code> $ pear channel-discover doc.php.net Channel "doc.php.net" is already initialized $ sudo pear install doc.php.net/phd_php Did not download optional dependencies: phpdocs/PhD_PEAR, phpdocs/PhD_IDE, use --alldeps to download automatically phpdocs/PhD_PHP can optionally use PHP extension "haru" phpdocs/PhD can optionally use package "phpdocs/PhD_PEAR" phpdocs/PhD can optionally use package "phpdocs/PhD_IDE" phpdocs/PhD can optionally use PHP extension "haru" phpdocs/PhD_Generic can optionally use PHP extension "haru" downloading PhD_PHP-1.1.10.tgz ... Starting to download PhD_PHP-1.1.10.tgz (26,240 bytes) .........done: 26,240 bytes downloading PhD-1.1.10.tgz ... Starting to download PhD-1.1.10.tgz (47,401 bytes) ...done: 47,401 bytes downloading PhD_Generic-1.1.10.tgz ... Starting to download PhD_Generic-1.1.10.tgz (29,362 bytes) ...done: 29,362 bytes install ok: channel://doc.php.net/PhD_Generic-1.1.10 install ok: channel://doc.php.net/PhD-1.1.10 install ok: channel://doc.php.net/PhD_PHP-1.1.10 </code> <code> $ phd --version PhD Version: 1.1.10 Generic: 1.1.10 PHP: 1.1.10 PHP Version: 5.5.9-1ubuntu4.14 Copyright(c) 2007-2016 The PHP Documentation Group </code> ===== ドキュメントのソースを取得 ===== <code> $ svn co http://svn.php.net/repository/phpdoc/modules/doc-en phpdoc-en </code> 上記だと英語のドキュメントになる。日本語のドキュメントがほしい場合は、''http://svn.php.net/repository/phpdoc/modules/doc-ja'' をcheckoutする。 ===== ドキュメントのビルド ===== phd用の.manual.xmlを生成する。生成が完了したら''ctrl+c''で終了する。 <code> $ cd phpdoc-en $ php doc-base/configure.php configure.php: $Id: configure.php 337463 2015-08-14 23:54:15Z cmb $ PHP version: 5.5.9-1ubuntu4.14 Checking for source directory... /home/ubuntu/phpdoc-en/doc-base Checking for output filename... /home/ubuntu/phpdoc-en/doc-base/.manual.xml Checking whether to include CHM... no Checking for PHP executable... /usr/bin/php5 Checking for language to build... en Checking whether the language is supported... yes Checking for partial build... no Checking whether to enable detailed XML error messages... no Checking libxml version... 2.9.1 Checking whether to enable detailed error reporting (may segfault)... yes Checking whether to optimize out the DTD (performance gain, but segfaults)... yes Generating /home/ubuntu/phpdoc-en/doc-base/manual.xml... done Generating /home/ubuntu/phpdoc-en/doc-base/install-unix.xml... done Generating /home/ubuntu/phpdoc-en/doc-base/install-win.xml... done Generating /home/ubuntu/phpdoc-en/doc-base/developer.template.xml... done Generating /home/ubuntu/phpdoc-en/doc-base/scripts/file-entities.php... done Iterating over extension specific version files... OK Saving it... OK Creating file /home/ubuntu/phpdoc-en/doc-base/entities/file-entities.ent... done Checking for if we should generate a simplified file... no Checking whether to save an invalid .manual.xml... no Loading and parsing manual.xml... done. Validating manual.xml... done. All good. Saving .manual.xml... done. All you have to do now is run 'phd -d /home/ubuntu/phpdoc-en/doc-base/.manual.xml' If the script hangs here, you can abort with ^C. _ _..._ __ \)` (` / / `\ | d b | =\ Y =/--..-="````"-. '.=__.-' `\ o/ /\ \ | | \ \ / ) \ .--""`\ < \ '-' / // | || \ '---' jgs ((,,_/ ((,,___/ (Run `nice php configure.php` next time!) ^C </code> .manual.xmlを使用し、phdでドキュメントを生成します。後は待つだけです。 <code> $ phd -d doc-base/.manual.xml -P PHP </code> 環境によってはかなりの時間がかかります。また警告などが表示され心が休まらないかもしれませんが、気長に待ちましょう。 もしお目当てのファイル形式がわかっているのであれば、''-f''で指定するのも手です。 <code> $ phd --help -f <formatname> --format <formatname> The build format to use </code> ===== 生成されたファイルを確認 ===== ドキュメントはすべてoutputディレクトリに生成されます。 <code> $ cd output $ ls index.sqlite php-bigxhtml.html php-chunked-xhtml/ php-epub/ php-howto/ php-pdf/ php-web/ php-bigxhtml-data/ php-chm/ php-enhancedchm/ php-functions/ php-kdevelop php-tocfeed/ </code> ===== トラブルシューティング ===== ==== PHP Fatal error: Class 'HaruDoc' not found ==== 以下のエラーは、PDFを生成する際に使用するライブラリが存在しないために発生する。 <code> PHP Fatal error: Class 'HaruDoc' not found in /usr/share/php/phpdotnet/phd/Format/Abstract/PDF.php on line 138 </code> [[http://libharu.org/|libHaru]]を公式サイトからダウンロードしインストール、その後PHPで利用するためにPECLで必要なライブラリを入れます。 <code> $ wget -O libharu.tar.gz https://github.com/libharu/libharu/tarball/master $ tar zxvf libharu.tar.gz $ cd libharu-libharu-d84867e $ ./buildconf.sh (./configureが存在しない場合に実行。これで生成される) $ make clean $ make $ sudo make install $ sudo pecl install haru </code> 以降は環境によって設定方法が異なりますが、コマンドラインでPHPの拡張機能を有効にする設定を行う。ここでは個別のファイルに書いていますが、php.iniへ直接書いてもOK。 <code> $ sudo vi /etc/php5/mods-available/haru.ini extension=haru.so $ cd /etc/php5/cli/conf.d $ sudo ln -s ../../mods-available/haru.ini haru.ini </code> ===== 参考 ===== * [[http://doc.php.net/phd/docs/|PhD: The definitive guide to PHP's DocBook Rendering System]] ===== 関連書籍 ===== <html> <div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;margin:0px 12px 1px 0px;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4802610440/ichikorocom-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51a01TalzOL.jpg" alt="いまどきのアルゴリズムを使いこなす PHPプログラミング開発テクニック" style="border: none;" /></a></div><div class="amazlet-info" style="line-height:120%; margin-bottom: 10px"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4802610440/ichikorocom-22/ref=nosim/" name="amazletlink" target="_blank">いまどきのアルゴリズムを使いこなす PHPプログラミング開発テクニック</a><div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">posted with <a href="http://www.amazlet.com/" title="amazlet" target="_blank">amazlet</a> at 16.05.01</div></div><div class="amazlet-detail">クジラ飛行机 <br />ソシム <br />売り上げランキング: 220,472<br /></div><div class="amazlet-sub-info" style="float: left;"><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4802610440/ichikorocom-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jpで詳細を見る</a></div></div></div><div class="amazlet-footer" style="clear: left"></div></div> </html> ~~socialite~~ {{tag>PHP PhD DocBook}}

コメント

コメントを入力. Wiki文法が有効です:
C R L S P