PHP

1  2  3

先日リリースされたSOY Inquiry0.9.6 をロリポップサーバーにインストールしたときに発生したトラブルの対処法をメモしておきます。

  • PHP5.2.6
  • SOYCMS 1.2.7b SQLite版
  • SOY Inquiry 0.9.6
  • 送信方法:sndmail

php.iniの設定は予め「safe_mode off」にしています。

エックスサーバー(X20)にSOY CMSバージョン1.2.6を設置する方法はSOYCMSサイトに掲載されていますが、SOY CMSバージョン1.2.7をインストールしようとするとエラーが発生してインストールできませんでした。

Call to a member function execute() on a non-object.

エラーの発生場所は「/common/lib/soy2_build.php」の『$stmt->execute();』。
PDOのSQL実行ができないもよう。
というか、$stmtの中身がfalseでした。
当然、execute()なんて言われても処理できないですよね。

で、結局どうしたか??

$result = ($stmt)? $stmt->execute(): false;

と言った具合にif文で回避させて何とかインストールできました。

bakeで焼いたときの delete 処理は 『$this->Model->del($id)』となっているが、cakeのマニュアルには Model->del($id)が載ってないんですよね。

Model->remove($id)がModel->del($id)のシノニムですよって。でも、del()は載ってなくて、代わりに delete() が載ってる。ついでに deleteAll() ってのもある。これは saveAll() 的な使い方になるのでしょうか?

マニュアル見ても分からないときは、ソースコードを読みましょう!!

前回はACLの制御『誰が何に対してアクセス可能か制御する』仕組みの『誰が』の部分を作成しました。

今回は『何に対してアクセス可能か』の部分についてみていきたいと思います。

しかし、何度マニュアルを読んでも理解不明。ちなみに現在日本語サイトはリンク切れです。

そんな時に救世主が現れました。「CakePHPのACLにはまる...でも、出てくる?!

さっぱりチンプンカンプンだったのが、ぼんやりと理解できてきたような・・・。

それでは早速作業にかかりましょう。

cakePHPのチュートリアル「ACL を制御するシンプルなアプリケーション」を実践したときの備忘録

  1. まずはcakePHPをダウンロード。

    http://cakephp.org/から現在の安定版1.2.5をダウンロードしてweb領域にセットします。

  2. 続いてDBの設定。

    「cake_tutorial」というDBを作成して以下のテーブルを作成。

    CREATE TABLE users (
        id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	username VARCHAR(255) NOT NULL UNIQUE,
        password CHAR(40) NOT NULL,
        group_id INT(11) NOT NULL,
        created DATETIME,
        modified DATETIME
    );
    
     
    CREATE TABLE groups (
        id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        created DATETIME,
        modified DATETIME
    );
    
    
    CREATE TABLE posts (
        id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        user_id INT(11) NOT NULL,
        title VARCHAR(255) NOT NULL,
        body TEXT,
        created DATETIME,
        modified DATETIME
    );
    
    CREATE TABLE widgets (
        id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        part_no VARCHAR(12),
        quantity INT(11)
    );
    

ここまで出来たら後はbakeでサクッと作成しちゃいます。

早速「Zend_Gdata」の「Google Spreadsheets」を使ってみたいと思います。

事前準備としてgoogleアカウントを作成し、googleドキュメントに「商品データベース」という名前でSpreadsheetsを作成しておきます。

商品データベース(シート名:商品一覧)
no name price show_detail show_image1
1 商品1 500 商品1の詳細説明 ※画像(画像の管理はPicasaで行います)
2 商品2 600 商品2の詳細説明 ※画像(画像の管理はPicasaで行います)

PHPフレームワーク「Zend Framework」は下記から最新版をダウンロードします。
Zend本家サイト
今回は「Zend Framework 1.9.6 Minimal」をダウンロードしました。

基本的にダウンロードしてきたファイルを展開し、PHPのパスを通せば設定完了です。

windowsで作成したcakephpのプログラムをmacbookに移設したとき、403や404エラーが出てしまいました。そのときの対処法をメモしておきます。

PEAR Mail はメール送信プログラム用のモジュールです。
factory メソッドで Mail オブジェクトを作成して、send メソッドでメールを送信します。

レンタルサーバーでPEARを使いたいとき、共有サーバーでは使いたいPEARモジュールがインストールされていなかったりしてせっかく書いたプログラムが動かせなくて困ってしまいます。
そういう時はPEARマニュアル「FTP を使って PEAR のローカルコピーをインストールする方法」を参照してローカルインストールを行います。

では実際にインストールしてみましょう。
「ftp を通じた PEAR のローカルコピーのインストール - 昔ながらの方法」が容易にインストールしやすそうです。

1  2  3