忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/05/09 04:28 |
PHP Services_Shitarabaを1.0.4にバージョンアップ
先日Services_Shitarabaを1.0.3から1.0.4にバージョンアップしました。
といってもほぼ内部的変更だけで、これまでのソースとはほぼ互換性があります。

もし1.0.3までを利用していた場合、一箇所だけ修正が必要です。
コンストラクタをファクトリメソッドに変更してください。
それ以外は全く同じに使えるはずです。

 new Services_Shitaraba($bbsGenre, $bbsNum, $bbsPassword);
 ↓
 Services_Shitaraba::factory($bbsGenre, $bbsNum, $bbsPassword);

修正内容。

・奇妙な作りだったのを素直な感じに修正
・ファクトリメソッドと抽象クラスでしたらば以外のBBSにも対応
 中身は誰かが書いてくれるにちがいない。
・ホスト名で削除機能を実現
 管理画面のHTMLをパースするためにtidyを使用しています。


すぐに動作できるサンプルソースを用意しました。
http://blog.cnobi.jp/v1/blog/user/8f14c19eb01af9c2e80c7f2ad07dc8ca/1307544614
config.phpに設定を書けば動作するはずです。
Smartyのパーミッションとかは自分で調べてください。
中は物凄い適当なのであまり見ないでください。

以下の機能があります。
・1000行ったスレを削除
・NGワードで削除
・ホスト名で削除

したらばBBSの管理画面では面倒な、一括削除を簡単に行うことに特化しています。


しかし昔のソースを見ていたら色々ツッコミどころが多いですね。
setGerneってなんだよ。
今回のも本当はスレッド単位、レス単位でクラス化して楽に扱いたいとかそもそも命名をやりなおしたいとかあったんですが、面倒だったのでそのままです。

ていうか今のソースもServices_Bloggingからコピペした跡とか残ってるしこれはひどい。
PR


2011/06/08 23:53 | Comments(3) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

こんばんは。したらばのspam対策等に非常に便利に使わせていただいてます。
いつのまにか1.0.3がzendのcookieエラーとかいって
動かなくなってしまったのでpear installで1.0.4にしたのですが、
こんどはDeclareエラーとかいって止まってしまうようになりました。

phpはさっぱりでservices_shitarabaの内部っぽいかんじもするのですが、どこ直したらよいでしょうか。


PHP Fatal error: Declaration of Services_Shitaraba_Model_Shitaraba::setGenre() must be compatible with that of Services_Shitaraba_Model_Abstract::setGenre(
) in /usr/share/pear/Services/Shitaraba/Model/Shitaraba.php on line 10


ソースはサンプルそのままです。
factoryにはしてます。
---
<?php
require_once('Services/Shitaraba.php');
$shitaraba=Services_Shitaraba::factory('game','7135','xxxx');
$ret=$shitaraba->datThread(
$shitaraba->getDatThreadList()
);
---

# php -v
PHP 5.2.16 (cli) (built: Dec 17 2010 14:09:03)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

# pear list
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.3.10 stable
Console_Getopt 1.3.1 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_RPC 1.5.1 stable
XML_Util 1.2.1 stable
posted by うしうし URL at 2012/08/14 01:31 [ コメントを修正する ]
よもやこれを使ってる人が実在しているとは…


エラーの原因ですが、
・抽象クラスのメソッドと実装クラスのメソッドの引数が違うという潜在的E_STRICTエラーがあった(今気付いた)
・PHP5.4でE_STRICTがE_ALLに含まれるようになったのでエラーが表に出てきた
 http://php.net/manual/ja/function.error-reporting.php
 http://php.net/manual/ja/language.oop5.abstract.php

ということで……5.2なのか、これはわかりませんね。
おそらくerror_reportingでE_STRICTエラーを検出するようになっているせいではないかと思われます。

とりあえず動かすなら、
スクリプトの頭に
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
とか書いておけば動くと思います。

根本的になおすには、
Services_Shitaraba_Model_Abstractの各abstractメソッドの引数を、
Services_Shitaraba_Model_Shitarabaと同じにしてください。
たぶんそれでなおります。


正直OpenPearのパスワードとか覚えてないのでなおせるかどうか微妙ですが、気が向いたら修正します。

posted by NurseAngel URL at 2012/08/14 23:20 [ コメントを修正する ]
さっそくの返信ありがとうございます。
Services_Shitarabaはしたらば総合6位の掲示板で大活躍中です。

ご指摘どおりabstractメソッドの引数修正を行ったところ
declare fatalはでなくなりましたが
1.0.3と同じようにCookie.phpが延々Noticeを出すようになりました。
実際の過去ログ送り操作も行えてないようです。

PHP Notice: Array to string conversion in /usr/share/pear/Zend/Http/Cookie.php on line 285
PHP Notice: Array to string conversion in /usr/share/pear/Zend/Http/Cookie.php on line 285
PHP Notice: Array to string conversion in /usr/share/pear/Zend/Http/Cookie.php on line 285

zend側っぽいのでもう少し悩んでみます・・・。
posted by うしうし URL at 2012/08/15 04:14 [ コメントを修正する ]

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<Dojo1.6.1 dojo Dojo道場03 グラフウィジェット | HOME | SCE開発ネットワークのソースコード流出?>>
忍者ブログ[PR]