【PHP】2chat開発スレ【2chを越える】 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2016/04/23(土) 13:45:28.79ID:???掲示板とチャットを組み合わせたオープンソースのPHPスクリプトです。
名前の由来は2ch+chat
【特徴】
*基本的な面
ユーザー登録は必要だが、匿名
ユーザーは日付の経過や書き込み、荒らしなどでレベルが上下し、このレベルは通報の影響度などに関わる
管理人が不在でも通報が集まった書き込みは自動削除
チャット形式の為、書き込み上限はなく、テンプレはいつでも誰でも編集可能
板はなく、各スレッドはカテゴリを付けられる為、スレッドを探しやすい
単発スレには向かない
*専ブラ
jsを使い専ブラなしで快適に閲覧出来るUIを提供
WEBで見れるため、PC⇔スマホで開いているスレなどを完全同期できる
*API
誰でも使えるAPIを提供(jsonp対応)
2ch互換のAPIも提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
00771
2016/05/09(月) 23:27:19.16ID:???$$から始まる関数をJQオブジェクト作成関数にして、$始まる変数をJQオブジェクトにします
00781
2016/05/09(月) 23:45:45.83ID:???jsの設計分からん
0079nobodyさん
2016/05/10(火) 00:41:45.00ID:???そうだっけ
どういうコードなんだろう
00801
2016/05/10(火) 07:50:47.24ID:???00811
2016/05/10(火) 21:16:30.20ID:???00821
2016/05/10(火) 23:59:09.03ID:???0083nobodyさん
2016/05/11(水) 11:02:28.76ID:???開発の仕方が5年ぐらい前に流行った開発だよね
ggったらよく出てくる内容だから勉強しやすいのかもしれないけど
特に今年は新しい環境が出揃ってこれからっていう元年に近い年だから
そっちに倣ったほうが楽しいと思うんだがな
それじゃ頑張ってくださいノシ
0084nobodyさん
2016/05/11(水) 11:35:03.10ID:???せめて誘導しろや>そっちに倣ったほうが楽しい
00851
2016/05/11(水) 16:03:56.63ID:???すみません
今ajaxが流行っていると書いてあったので、ajaxで作ってみました
00861
2016/05/11(水) 20:04:05.59ID:???0087nobodyさん
2016/05/12(木) 02:44:05.11ID:???SPA作るならフロントはReact+redux+react-routerで
ビルドはwebpackで十分だし
Angular2に手を出すのもアリだけど
DOM操作なんて人間様のやる事じゃないのでjQueryは必要無し
サーバーサイドPHPにするんならオレオレじゃなくて有名どころのFW使わないとセキュリティ周りで死ぬぞ
0088nobodyさん
2016/05/12(木) 03:01:13.65ID:???流行ってるってどこに書いてあるんだそんなの
0089nobodyさん
2016/05/12(木) 10:13:48.26ID:tNg+7L1IDOMで皆苦しんだ
0090nobodyさん
2016/05/12(木) 10:37:40.79ID:???一度組み上げてこのままじゃだめだよねと確認して次のステップへ行こう
この場につきっきりでコミュニケーション取りながら教えられる人なんていないだろうし
0091nobodyさん
2016/05/12(木) 12:12:53.26ID:???0092nobodyさん
2016/05/12(木) 13:23:55.76ID:???形から入って完成しないパターンにしかならんしな
とりあえず動くものを用意して反応を貰うのが一番良い
00931
2016/05/12(木) 15:51:12.71ID:???SPAアプリだと他のライブラリの方が、保守しやすいみたいですので、色々触ってみます
動く物を見せたいのですが、現在サーバーの審査待ちですので、少々お待ち下さい
00941
2016/05/12(木) 17:05:14.47ID:???Angular2+TypeScript+css+htmlで作る予定です
00951
2016/05/12(木) 17:05:51.17ID:???クライアントサイドは
Angular2+TypeScript+css+htmlで書き直す予定です
00961
2016/05/12(木) 17:46:48.88ID:???0097nobodyさん
2016/05/12(木) 18:18:58.09ID:???00981
2016/05/12(木) 18:44:34.33ID:???また、APIでAccess-Control-Allow-Origin: *を出力して、POST通信でも出来るようにします
00991
2016/05/13(金) 20:11:58.20ID:???日曜用事あるから、土曜頑張ろう
01001
2016/05/14(土) 16:33:06.50ID:???かなり分かりやすくなった
01011
2016/05/14(土) 16:59:04.14ID:???各レスに固有IDつけているけど
01031
2016/05/15(日) 00:55:05.09ID:???コンポーネントが出来たから後はアンカー、ID、返信のポップアップだな
>>102
ありがとうございます。してみます
0104nobodyさん
2016/05/15(日) 11:08:14.41ID:???うちの職場が遅れすぎてるのか?
01061
2016/05/15(日) 21:53:58.07ID:???2chのアンカーポップアップでggっても、バインドの方法は書いてないし、DOM操作のも再帰的なポップアップがない
あと、全部のレス読み込む訳じゃないから、マウスオーバー時にサーバーにリクエストする予定だし
01071
2016/05/15(日) 22:16:41.02ID:???01091
2016/05/17(火) 19:27:11.65ID:???//スクロール位置
var scroll=$("#tab"+tab.id).scrollTop()+$("#tab"+tab.id+">.responseList").position().top;
//一番近い要素
var $close=$responseHeaderList.first();
//最短距離
var minDistance=Math.abs(scroll-$close.position().top);
//最短距離のオブジェクト取得
$responseHeaderList.each(function () {
//距離取得
var distance=Math.abs(scroll-$(this).position().top);
//今回の方が短ければ
if(minDistance>distance){
$close=$(this);
minDistance=distance;
}
//デパッグ
//$(this).css("color","#555555");
});
tab.scrollResponse=Number($close.data("responseID"));
//デパッグ
//$close.css("color","red");
01101
2016/05/17(火) 19:28:15.65ID:???0111nobodyさん
2016/05/18(水) 10:28:37.26ID:???01121
2016/05/19(木) 19:19:04.16ID:ie/BYStVまだ7は普及してないし
0113nobodyさん
2016/05/19(木) 20:10:55.06ID:???01141
2016/05/19(木) 20:13:58.11ID:???01151
2016/05/19(木) 22:12:27.85ID:???あとはポート開放だけなんだけどやり方が分からない
01161
2016/05/19(木) 22:14:01.00ID:???ラズパイ3欲しいが今の所は1で問題なさそう
0117nobodyさん
2016/05/19(木) 23:14:40.04ID:???01181
2016/05/19(木) 23:30:36.95ID:???0119nobodyさん
2016/05/19(木) 23:39:49.21ID:???狂気の沙汰ほど面白い
0120nobodyさん
2016/05/20(金) 00:17:19.01ID:lNAjozeA自宅サーバのセキュリティは正直面倒だ
レンサバでもXServer(と傘下のネットオウル系)やhetemlはPHP7入ってるでしょ
ttps://www.xserver.ne.jp/functions
ttp://www.minibird.jp/service/function.php
ttps://heteml.jp/service/function/
01211
2016/05/20(金) 07:16:43.70ID:???01221
2016/05/20(金) 18:02:21.87ID:???MySQL使うのにクレカ登録がいる・・・
01231
2016/05/20(金) 20:17:09.92ID:???01241
2016/05/20(金) 20:31:33.97ID:???http://2chat.heteml.jp/
01251
2016/05/20(金) 20:48:21.19ID:???0126nobodyさん
2016/05/20(金) 22:33:08.79ID:???0127nobodyさん
2016/05/20(金) 22:38:01.89ID:???01281
2016/05/20(金) 22:43:23.03ID:???最初mysql関数で組んでいて、PHP7で使えないことに気付いて組みなおしたけど、PDOの方が主流だったのか・・・
0129nobodyさん
2016/05/20(金) 22:52:21.60ID:???01301
2016/05/21(土) 08:38:48.52ID:???MySQL以外を使う予定はないので、このままでいいですかね?
・今後の予定
モバイル版専ブラ
URLを持った、2ch風の閲覧専用ページ
IDポップアップ
01311
2016/05/21(土) 09:45:57.12ID:???01321
2016/05/21(土) 10:12:29.63ID:???これを使えば、mysqlndなしでいけるのだろうか
01331
2016/05/21(土) 10:37:40.59ID:???ここのサーバーを長期的に使うことになりそうです
01341
2016/05/21(土) 10:47:06.56ID:???多分headerで確認しているね
ここなら安心して使える
0135nobodyさん
2016/05/21(土) 11:41:42.34ID:???まあ万が一負荷が問題になるほど流行ったらよそへ移ればいいか
01361
2016/05/21(土) 11:47:09.27ID:???01371
2016/05/21(土) 11:48:07.69ID:???0138nobodyさん
2016/05/21(土) 15:37:44.53ID:???.gitignoreって知ってるか
nbprojectとかいうNetbeansの設定フォルダはバージョン管理の対象から外すといい
0139nobodyさん
2016/05/21(土) 15:38:48.65ID:???0140nobodyさん
2016/05/21(土) 15:39:53.51ID:???0141nobodyさん
2016/05/21(土) 15:48:22.45ID:???PSR-4に従っとくと楽だと思うが
0142nobodyさん
2016/05/21(土) 16:51:55.65ID:???01431
2016/05/21(土) 17:23:25.76ID:???外してよかったんですね
外します
>>139
使ったことありませんでした
調べてみます
>>140
スカラー型のタイプヒンティングを使いたかったので、PHP7にしました
>>141
よく分からないので調べてみます
>>142
WEBアプリ(特に永続化が必要な物)のオブジェクト指向ってどう作ればいいんでしょうか?
よく分かりませんでした
0144nobodyさん
2016/05/21(土) 17:33:59.54ID:???PHPはネットにクソ情報が多すぎる
0145nobodyさん
2016/05/21(土) 17:41:43.15ID:???勉強がてらなら、オブジェクトの永続化を抽象化するリポジトリパターンを独自で組んでみてもいいのでは。
Threadなどのオブジェクト(エンティティ)は自身の永続化には関知せず、ThreadRepositoryなどリポジトリクラスを作って、DBとのやり取りはそちらのクラスの責務にする。
0147nobodyさん
2016/05/21(土) 17:55:17.02ID:???大抵のWebアプリに永続化が必要ではあるが
Webアプリで真っ当なオブジェクト指向って時に特有なのはHTTPリクエストとHTTPレスポンスをオブジェクトとして扱うことだろうな。
大雑把に言うとアプリケーション全体をHTTPリクエストを引数にとってHTTPレスポンスを返す関数として捉える
PHP界隈だとHTTPリクエストとレスポンスのライブラリが標準にないため、フレームワークごとに乱立していた感じ
最近ようやくPSR-7 HTTP messagesという標準になってくれそうなインターフェースが決まって広まりつつある
0148nobodyさん
2016/05/21(土) 18:07:09.53ID:???MVC2などによる構造の切り分けも大体のフレームワークが行っている
DBへの永続化、ユーザー認証認可、テンプレートエンジンなどの他の頻出機能は好きなライブラリやコンポーネントを組み合わせやすい便利な時代になった
Composer様々だな
01491
2016/05/21(土) 18:09:12.44ID:???あと、デスクトップアプリでも、ファイルを全て読み込んで、オブジェクトに変換して、処理をして、保存といったアプリしか作った事がないので一部のみ読み込んで的なアプリがよく分かりません
01501
2016/05/21(土) 18:17:39.96ID:???0151nobodyさん
2016/05/21(土) 18:18:52.72ID:???>>1の普通がどこの普通かは知らんが普通のデスクトップのアプリでもDB使うなら逐一DB更新することあるでしょ
0152nobodyさん
2016/05/21(土) 18:42:14.46ID:???composer対応とかは後回しにしてとりあえず形にしちゃった方がいいと思う
0153nobodyさん
2016/05/21(土) 19:17:03.07ID:???しっかり設計されてると保守・機能追加のしやすさはかなり変わるから徐々に改善していけばいい
01541
2016/05/21(土) 21:41:26.34ID:???何か分かったような分からなかったような・・・
01551
2016/05/21(土) 22:09:48.10ID:???js開発をnbでするのは辛い
01561
2016/05/21(土) 22:13:21.64ID:???01571
2016/05/21(土) 22:22:25.99ID:???>>130
autoloading
コーティング規約の統一
リポジトリパターンの採用
一部Unicode文字が使えない問題
スレッド取得APIの強化
スレタイ/全文検索
TypeScriptへの移植(未定)
TypeScriptでHTTPリクエストを隠蔽する薄いラッパーライブラリの作成(↑をするならこっちも作る)
01581
2016/05/22(日) 13:16:47.71ID:???spl_autoload_register(function($name) {
//nicht\で始まるなら
if (strpos($name, "nichat\\") === 0) {
//クラス名→パス取得
//"nichat\"を削除し、\をパス区切り文字に置き換え
//最後に絶対パス化し、".php"をつける
$path = dirname(__FILE__) . str_replace("\\", DIRECTORY_SEPARATOR, substr($name, 7)) . ".php";
//読み込み
include $path;
}
});
0159nobodyさん
2016/05/22(日) 13:47:35.56ID:???技術の話ばっかりなのは仕方ないか・・
01601
2016/05/22(日) 14:09:27.45ID:???確かに利用者にとっては、内部がどうなっているかは関係なく、使いやすい物が出来ればそれでいいのですが、PHPを正しく学習したいと考えています
01611
2016/05/22(日) 14:14:29.02ID:???多分今作っているオートローダーの仕様で大丈夫と思います・・・
01631
2016/05/22(日) 15:50:41.18ID:???バージョン選択から選べないし
(function(){})();がエラーになって面倒
01641
2016/05/22(日) 17:23:23.90ID:???*サーバー
リポジトリパターンの採用
一部Unicode文字が使えない問題
スレッド取得APIの強化
コーティング規約の統一
IDポップアップ
スレタイ/全文検索
*クライアント
モバイル版専ブラ
URLを持った、2ch風の閲覧専用ページ
TypeScriptへの移植(未定)
TypeScriptでHTTPリクエストを隠蔽する薄いラッパーライブラリの作成(↑をするならこっちも作る)
コーティング規約の統一
IDポップアップ
スレタイ/全文検索
01651
2016/05/22(日) 17:29:08.44ID:???1〜20件取得→一番下までスクロール→21〜40取得とかだと取得出来ないレスがあったり重複したりするし
01661
2016/05/22(日) 17:29:43.64ID:???0167nobodyさん
2016/05/22(日) 18:27:48.14ID:???0168nobodyさん
2016/05/22(日) 18:30:58.77ID:???カーソルの最大値以降の次の20件を取得。
以下ループ。
0169nobodyさん
2016/05/22(日) 18:31:36.55ID:???01701
2016/05/22(日) 18:36:23.01ID:???仕方ないからreadThreadPageを消して、searchThread追加した
あとsearchThreadにスレタイ検索も組み込んだ
01711
2016/05/22(日) 18:39:41.93ID:???クライアントサイドはバグあっても(ないほうがいいけど)脆弱性には繋がらないけど、サーバーサイドは下手したら大変な事になる
DB流出してもパスワードとトリップはハッシュ化しているから分からないけど、誰が書き込んだかは分かるからね
01721
2016/05/22(日) 18:47:15.63ID:???Googleとかはどういう仕組み使っているんだろう
01731
2016/05/22(日) 18:51:58.75ID:???2chで言うID→ハッシュ
2chでいう>>n→リプライ
連番ID→ID
文字列ID→スクリーンネーム
でいいか
01741
2016/05/22(日) 22:18:01.77ID:???>リポジトリパターンの採用
core内クラスで、そこまで複雑な事をしておらず、ほとんどDB操作だけど、分割するべきなのか
>一部Unicode文字が使えない問題
php.iniの文字コード変えれば大丈夫らしい
>スレッド取得APIの強化
強化ではなくなったが、改善した
>コーティング規約の統一
作業中
>IDポップアップ
完了
>スレタイ/全文検索
スレタイ検索は完了
TODOにはなかったけど、Response取得系で、認証を行うことで自分の書き込みであるかを知ることのできるフラグを追加した
01751
2016/05/22(日) 23:41:55.28ID:???*サーバーサイド
存在しないレスへのリプライのエラー発生
自信へのリプライの通知
01761
2016/05/23(月) 00:08:12.74ID:???https://github.com/kgtkr/2chat/blob/master/ToDo.md
0177nobodyさん
2016/05/23(月) 12:40:15.11ID:???TODO管理とかyoutrackとかteamcity見たいので管理するとええよ
ここで垂れ流ししつつツール上で管理するとやりやすい
■ このスレッドは過去ログ倉庫に格納されています