Code Monkey home page Code Monkey logo

bear.saturday's Introduction

BEAR.Saturday

© 2008-2019

What is BEAR.Satruday ?

BEAR.Saturday is a resource oriented web framework for PHP5.2+

Requirements

  • PHP 5.2 - 7.2

Documentation

(日本語) https://github.com/bearsaturday/manual

Upgrade from PEAR installed project

Here is the minimum composer.json to convert composer based project for exisitng PEAR-installed base project.

{
    "name": "my-vendor/my-project",
    "description": "",
    "license": "proprietary",
    "require": {
        "php": ">=5.4",
        "bearsaturday/bearsaturday": "^0.10"
    },
    "repositories": [
        {
            "type": "pear",
            "url": "https://pear.php.net"
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": true,
    "include-path": [
        "./"
    ],
    "autoload": {
        "classmap": [
            "App"
        ]
    }
}

Create project

It is NOT recommended to create new BEAR.Saturday project. Use BEAR.Sunday instead.

composer create-project bearsaturday/skeleton MyVendor.MyPackage

Hosting

ln -s MyVendor.MyPackage/htdocs /path/to/vhost_dir

Demo

Run demo site beardemo.local

コーディングの参考にしてください

YouTube

See Hello World demo in youtube.


First public release: 31 July 2008

bear.saturday's People

Contributors

akihiro-moriwaki avatar jingu avatar koriym avatar kumamidori avatar mokotiyo avatar ryo88c avatar ryoryo avatar ryosuke-yoshida avatar satomi-fukushima-excite avatar satomif avatar usomillp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bear.saturday's Issues

BEAR_Page BEAR_Main のgetCacheKey()

memcacheを使っているサイトでBEAR_Page BEAR_Main のgetCacheKey()
でmemcacheのkeyサイズの最大の250バイトを超えるケースがあったのですが、
これは BEAR_Cache_Adapter_Memcache の set , get 側を直すべきでしょうか?
それとも 呼び元のBEAR_Page BEAR_Mainを直すべきかどちらがよいですかね?

memcacheに依存する問題なので、BEAR_Cache_Adapter_Memcache
のset getのところでキーをhash化すべき?
ただ Roのキャッシュは BEAR_Ro_Prototypeでmd5にしていたので…

どうでしょうか?

BEAR_Test_Clientの機能アップ要望いたします

BEAR_Test_Client クラスを使って、HTTP_Request2 でできていることはすべてできるように書けないだろうか、と考えました。

現状、BEAR_Test_Client クラス requestメソッドの内部でHTTP_Request2 の生成をしています。
BEAR_Test_Client の request メソッドを呼び出すとき、setHeader や setConfig、その他 HTTP_Request2 のメソッドでできる設定をかけてから、request 呼び出し実行、という流れで、機能テストが書けるようにしつつ、これまでのバージョンとの後方互換性もある、という形にして頂くことはできますでしょうか?

もしくは、まったく別のWebクライアントクラスを新規で追加する形でもかまいません。

お時間ありますときに(週明け以降に)ご検討頂ければと思います。

インストール手順について

[#24] は既にマージ頂いたので、閉じて頂いてだいじょうぶかと思います。
下記、お時間あるときにご確認下さい。

現象

マニュアルどおりのインストール手順で

pear install bear/BEAR-beta

をすると、下記のようにインストールに失敗しました。

pear install bear/BEAR-beta
Unknown remote channel: pear.firephp.org
bear/BEAR requires package "channel://pear.firephp.org/FirePHPCore" (version >= 0.3.1)
No valid packages found
install failed

だいぶ前からそうなっていたと思います。

原因

package.xml で指定されている下記の channel について、登録手順がマニュアルには書かれていないため。

FirePHPCore pear.firephp.org 0.3.1 ## 対処

下記のようにマニュアル修正で良いでしょうか。
そうではなくて、これは本体側で意図していない現象なのでしょうか?

https://code.google.com/p/bear-project/wiki/Install

  • 変更前:

    $ sudo pear channel-discover pear.bear-project.net
    $ sudo pear channel-update pear.php.net

  • 変更後:

    $ sudo pear channel-discover pear.bear-project.net
    $ sudo pear channel-update pear.php.net
    $ sudo pear channel-discover pear.firephp.org

mysql5.1以降のpreparedステートメントのfree

bear ver)
bear version 0.9.15.

現象)
バッチ処理にて、あるテーブルにデータがあるかどうかselect -> あれば update, なかったらinsertという処理中、SQLが MDB2 Error: unknown error でこける。

原因)
mysql5.1以降で導入された、max_prepared_stmt_count のデフォルト値が16382 であるため、prepareステートメントをfreeせずに16382 回以上連続して使用することができなくなった。

対策)
BEAR/Query.php
の、selectファンクション及び_selectRowファンクション内にて使用しているprepareステートメントの後に$sth->free();を呼ぶことで、問題が起きなくなることを確認しておりますが、なんらかの方法で$sthオブジェクトを取得できるようにしていただいてもいいかと思います。

ひとまずは、BEAR/Query.phpは修正せずに、バッチ内で10000回のクエリごとに、disconnectするように修正しました。

HTML_QuickForm_radioの__constructと引数の数が一致していない

parent::__construct($elementName, $elementLabel, $attributes);

以前まではHTML_QuickForm_radioではなく更に親のHTML_QuickForm_elementのコンストラクタを実行していたため、上記のコードで問題なく動いていましたが、bradioの直接の親はHTML_QuickForm_radioなので、コンストラクタは

`__construct($elementName=null, $elementLabel=null, $text=null, $value=null, $attributes=null)

となり、$textのところに$attributesが代入されてしまっています。

コードの保存文字コード

■現象

Subversionサーバ、クライアントのバージョン等、環境によるようなのですが、
下記のように、UTF-8 / LF でないファイルがあると、
リポジトリ登録しようとすると、失敗するケースがありました。

・登録エラー内容
svn: Inconsistent line ending style

■原因

下記ファイル群をUTF-8 で保存し直したら、リポジトリ登録ができました。

find ./ -type f |grep -Ev ".gif"| xargs nkf --guess | grep -E "MIXED"

.//BEAR/vendors/jquery/jquery-1.3.1.js: ASCII (MIXED NL)
.//BEAR/vendors/xhprof/xhprof_html/css/xhprof.css: ASCII (MIXED NL)
.//BEAR/vendors/xhprof/xhprof_html/third-party/highcharts/highcharts.js: Shift_JIS (MIXED NL)
.//data/docs/eclipse/BEAR: No such file or directory
Conventions.xml: No such file or directory
.//BEAR/vendors/xhprof/xhprof_lib/templates/header.phtml: ASCII (MIXED NL)
.//data/htdocs/__bear/index.php: UTF-8 (MIXED NL)
.//data/htdocs/__bear/jquery-ui/js/jquery-ui-1.7.custom.min.js: ASCII (MIXED NL)
.//data/htdocs/__bear/xhprof/xhprof_html/css/xhprof.css: ASCII (MIXED NL)
.//data/htdocs/__bear/xhprof/xhprof_html/third-party/highcharts/highcharts.js: Shift_JIS (MIXED NL)
.//data/htdocs/__edit/ajax/files.php: ASCII (MIXED NL)

■対応について
お手数なのですが、お手すきの際に、
上記の保存し直しと、併せて、下記のEclipse固有ファイルについて、削除をお願いできますでしょうか。

.//data/docs/eclipse/BEAR: No such file or directory
Conventions.xml: No such file or directory

よろしくお願いいたします。

init cacheが更新されない

現象:連続的にアクセスがあるサイトでinit cacheが設定の秒数を超えてもキャッシュされない。

例えば10秒のキャッシュをinit-cacheとして設定しても、最初のアクセスから10秒でonInitが再びアクセスされ更新されるのではなく、最後のアクセスから10秒経過したタイミングでキャッシュが更新されてしまいます。

pageキャッシュやresourceキャッシュではこの問題は発生しません。

php5.2環境でinit-appでParse error

bearコマンドでinit-appすると以下のようにエラーになります。

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /var/home/mazda/excite/hoge.excite.co.jp/libs/pear/php/BEAR.php on line 399

以下の書式はphp5.2では対応しません。

 $class::$method($object, $config)

BEAR_Queryのsortオプション実装について

BEAR_Query の要望です。

https://github.com/koriym/BEAR.Saturday/blob/develop/BEAR/Query.php

■現象
Oracle だと、sort のqueryConfig が動きませんでした。

■変更案

_sort
_sortGetQuery
を、private -> protected に変更したら、アプリケーション側で継承して動くようにオーバーライドができるので、そうしたら良いかと思いました。

_sort の、column の quoteIdentifier "" これが、Oracleだと文法エラーになるので、やりたいことは、_sortメソッドの上書きです。

いかがでしょうか?

カラム名にDBの予約語を使ってしまっているMySQLのサービスもあるかもしれない
ので、デフォルトは現状(quoteIdentifier)で良いような気がします。

1. PR #21 の不備について / 2. 品質保証課題メモ

  1. PR #21 の不備について

すみません。私から下記関数の追加対応をしていたのですけれど、

BEAR.Saturday / data / app / tests / utility / v.php

下記のv関数と重複してしまう問題があることに気づきました。

Panda / Panda / Debug / util.php 

→ PRの修正版を出そうかと思います。修正して頂いてもかまいません。

  1. 品質保証課題メモ

別件ですが、下記が課題かなと感じます。

(1) Saturdayバージョンアップの検証時に、beardemo.local を使う、という今までのやり方を手順化
(2) スケルトン生成機能(init-app)をどうやったら検証できるか、やり方の手順化

上記(1)ですが、「checkout してきたら即テストが走る」くらいの簡単さが構築できれば
理想と考えました。
上記(2)は、個人的要望です(頻繁に使われる機能の割にはコード中クリーンになっていない箇所があり、いじりたいので。# もう枯れているのだしメンテしないでそのままにしておく方が良いかもしれませんが)。

(といっても、7月は私の方で時間が取れないのですが。とりあえずISSUEだけさせて頂きました)。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.