PHP、Perl、RubyでのPath(パス)の通し方、クラスの書き方とか
普段、PHPばかり触っているので、PerlやRubyでライブラリを使いたいと思っても、Path(パス)を設定するだけでも一苦労。 各言語で、 Path(パス)を通して、ライブラリーを使ったり、クラス、オブジェクトであれこれするためのメモ。
(参考リンクは、cpan,gemsのインストールとか、クラスの書き方などの雑多なもの。)
PHPでPath(パス)を設定する方法
php.ini
「php.ini」ファイルに、include_path を記述する。 区切りは“:”(UNIXで。Windowsだとセミコロンに)。ローカルにPEARを入れたときなどに、書いておく。
include_path = ".:/usr/local/lib/php"
.htaccess
「.htaccess」ファイルに、php_value include_path を記述する。php.iniとおなじく、設置場所がちゃんとしていないと動かない。
php_value include_path ".:/usr/local/lib/php"
phpファイルに直接書き込む
ini_set(),set_include_path(),get_include_path(),get_include_path(),ini_restore()などの関数を使う。
set_include_path('/inc');
ini_set('include_path', '/inc');
PHPの別ファイルや、ライブラリの読み込み方
require(),require_once(),include(),include_once()などの関数を使う。
allow_url_fopenの設定が"1"なら、「require(http://?.cgi?q=?);
」みたいなことも可能。
require_once('Cache/Lite.php');
include 'vars.php';
ファイルはinclude_pathで指定した所から探す。./を先頭に付けると探し方が変わったりする。
_onceが付いている関数は、1回だけ読み込む。require()とinclude()の違いは、require()だとFatalなエラーがでる所。
PHP クラスの書き方
php4なら、
class Class
{
var $var;
//コンストラクタ
function Class($v)
{
$this->var = $v;
}
//メソッド
function foo()
{
//?
}
}
php5だとコンストラクタは、__construct() 。メンバー変数に、 public、private、protectedとアクセス権が指定できる。
オブジェクトの使い方は、
$class = new Class($v);
$class->foo();
Class::foo();
PHP 参考リンク PEARなど
- PEAR :: Manual :: コマンドライン インストーラ
- PEAR入門:PEARインストール
- さくらインターネットにPEARをインストール [dozo dokuwiki.php]
- さくらのレンタルサーバへPEARをインストール (masha.webTechLog)
- さくらでpearインストール覚書
- ロリポップにないPEARをインストールする方法:PHPノート:アフィリエイトを続ける力
- デジットさんのPEARのインストール(PHP)
- ブラウザからPEARをインストールする - ホリデープログラミング入門 - Yahoo!ブログ
- yukotan hour: PEARインストール
- pearコマンドでSmartyやphpMyAdminをインストール:phpspot開発日誌
- さくらインターネットにPECLをインストール [dozo dokuwiki.php]
- Ethna - PHPウェブアプリケーションフレームワーク
PerlでPath(パス)を設定する方法
use lib
use lib qw(?);
でパスが指定でき、use ?とファイルを読み込めるようになる。
@INC
PATHは、「print join("\n",@INC);」で確認できる (@INCは、PATHが入った配列)。@INCに、パスを追加するときは、
BEGIN {
push(@INC, '/usr/local/sbin');
}
とできる。
PERL5LIB
環境変数「PERL5LIB」をShell の設定ファイルに加えておく。
-Iを付ける
#!/usr/local/bin/perl
を書き換えて、オプションでパスを指定することも可能。
#!/usr/local/bin/perl -I /usr/?
Perlの別ファイルや、ライブラリの読み込み方
require
require "jcode.pl";
のように書いて、外部のパッケージを読み込む。読み込まれるファイルは
package library;
sub sub1 {
}
return 1;
の形で書いておく。library::sub1();と呼び出して使える。
use
パスの通ったところにある「?.pm」ファイルは、
use Jcode;
のようにして読み込める。「::」で階層を表せる。「Module1::Module2」なら、Module1ディレクトリの中のModule2を表している。モジュールは、
package Module;
use Exporter;
@ISA = (Exporter);
@EXPORT = qw(sub1 sub2);
@EXPORT_OK = qw(sub3);
のように書いておく。使うときは、
use Module;
sub1();
use Module qw(sub3);
sub3();
とする。
Perl クラスの書き方、オブジェクト
オブジェクト指向の基礎 Perl講座を参考にしました。 引数は、shift,@_でとっていく。第1引数はクラス名。
package Class;
sub new{
my $class = shift;
my $self = {v1 => 1, v2 => 2};
return bless $self, $class;
}
sub method{
my ($self, $v1, $v2) = @_;
# $self->{v1} ?
}
使い方は、
$obj = new Class;
$obj->method(3, 4);
Perl 参考リンク CPANとか
- @INCの追加
- さくらインターネットでCPANを利用できるようにする - はてなブックマーク -> MovableType[1] : NOBODY:PLACE
- さくらインターネットでCPANを利用する (おぼへがき)
- wolog: CPANで自分のホームディレクトリ内にモジュールをインストール
- DreamHost で CPAN を使う方法 : Hasta Pronto.org
- suVeneのあれ: CPAN→Plaggerインストール(レンタルサーバさくら)
- 一般ユーザ環境におけるCPANモジュールの使い方 (iandeth.)
- [Perl] Plagger をさくらサーバにインストール isoya9の日記/ウェブリブログ
- OBS266 | 15-3. Plagger環境を作る その3
- Perlオブジェクト指向プログラミング
RubyでPath(パス)を設定する方法
-I オプション
Perlと似ていて、-Iでファイルをロードするパスを追加できる。 -I directory
環境変数
PATHに加えて、RUBYPATH、RUBYLIBなどを設定しておく。 Rubyリファレンスマニュアル - 環境変数。
Rubyの別ファイルや、ライブラリの読み込み方
load
$: , $LOAD_PATHにある場所や、絶対パスからファイルを読み込む。
load 'ruby.cgi'
load 'ruby.rb'
Rubyリファレンスマニュアル - 組み込み関数 #load
require
require は拡張子 .rb や .so を自動的に補完する。require はライブラリのロード、load は設定ファイルの読み込みなどに使われる。
require "cgi-lib"
Ruby クラスの書き方、オブジェクト
class RubyClass
attr_accessor :v
def initialize(v='')
@v=v
end
def method(v1 ,v2)
# @v ?
end
end
使うときは、
require 'rubyclass'
obj = RubyClass.new()
obj.method(1,2)
階層、関係がある場合は、 「require ‘class1/class2’」とか、 「class1::class2.new()」とする。
Ruby 参考リンク gems, Ruby on Rails
- 人間学とコンピュータを極める。 - さくらサーバにRoR環境をつくる
- Ruby on Rails のインストール
- RubyGems, scrAPI インストール手順 - XREA+版 | Diaspar Journal