【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も提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
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見たいので管理するとええよ
ここで垂れ流ししつつツール上で管理するとやりやすい
0178nobodyさん
2016/05/23(月) 16:36:00.31ID:???rootからのログイン不可とSUの作成
パスワードは自動生成系の奴で16文字以上の英数大小ランダム生成
telnetの停止とsshへ変更(鍵使用推奨)
sshの標準接続ポートの変更
可能ならsshログインは特定のIPからのみ許可にした方がいい
使用しないポートはすべて閉じる
※MySQLもローカルからのアクセスだけにした方が楽
家公開ならルーターに設定入れても同じ
01791
2016/05/23(月) 17:35:50.91ID:???プルリクエストって共同開発の機能ですかね?
今までOSDNでしていたのでいまいち分からないのですが、今でも大歓迎です
01801
2016/05/23(月) 17:42:13.01ID:???01811
2016/05/23(月) 19:23:52.22ID:???ダウンロードしたいだけ(もしくは、JQueryみたいにweb上から読み込みたい)なのに、パッケージマネージャーが何かとか出てくるんだが
01821
2016/05/23(月) 19:27:04.99ID:???01831
2016/05/23(月) 19:35:04.99ID:???node.js、rubyと別に解説あっていたし
vue.jsでいいか
01841
2016/05/23(月) 19:38:45.70ID:???APIを自分で作っている今回のプロジェクトには向かないのかな
01851
2016/05/23(月) 19:41:56.27ID:???0186nobodyさん
2016/05/23(月) 20:06:51.38ID:???angular.jsはvue.jsと同じ位置
クライアント側でもbrowserifyなどを使えばサーバ側のnodeと同様のモジュール管理ができるようになってる。
もちろんブラウザで直接モジュールシステムを使えるというわけではなく、
ローカルでnode.jsを動かして本番用のjsファイルをビルドする際にモジュールの依存関係を解決するという方向性
01871
2016/05/23(月) 20:10:31.45ID:QVAwNuKy簡単にDL出来ればいいのですが。。
でも、この程度の規模だとvueの方がいいですかね?
01881
2016/05/23(月) 20:18:20.80ID:???0189nobodyさん
2016/05/23(月) 20:28:33.89ID:???0190nobodyさん
2016/05/23(月) 20:29:50.49ID:???0191nobodyさん
2016/05/23(月) 22:38:24.98ID:jeHk4Nuoつかjsコードそのままだと7MBとかいくし、minify?しても1.2MBでgzipで300KBぐらいまでしか落ちない
そもそもフロントのangularjsとかさえ触ったことないwebの仕組みもよく知らない初心者やが
https://github.com/himanannyaga/angular2-express-mongo-quiz/tree/master/client/app/ts
demo http://128.199.129.51/
01921
2016/05/23(月) 23:13:37.86ID:???何か新しいjsでclass構文とか使えるらしいからvue+生jsでいいか
0193nobodyさん
2016/05/24(火) 07:39:36.65ID:???sourcemap(デバッグするためのファイル)ない状態で4MBぐらい
それにしてもでかすぎるが
01941
2016/05/24(火) 18:39:31.23ID:???1024^2*4文字ってどれだけ大きなライブラリなんだ・・・
それより、VSってJSのDoc補充出来ないのかな
JS用IDE何使おう
01951
2016/05/24(火) 19:01:11.96ID:???0196nobodyさん
2016/05/25(水) 07:24:48.90ID:???個人的にはphpstorm
このプロジェクト自体オープンソースとしてやっていくのであれば
申請すれば無料で使うことができるよ
0197nobodyさん
2016/05/25(水) 12:56:20.61ID:???チャンスじゃね。
01981
2016/05/25(水) 16:29:52.95ID:???OSなら無料で使えたのか
学生でも無料で使えるのは知っていたけど、申請面倒(国際何とか学生証?的な奴)だったからやめていたけど、ちょっと調べてみる
>>197
ひろゆき時代の2chは知らないけどどうなるんだろう
01991
2016/05/25(水) 16:31:47.42ID:???0200nobodyさん
2016/05/25(水) 20:52:21.46ID:???02011
2016/05/25(水) 21:01:21.48ID:DDgGmThDとりあえずnbで進めよう
今ライブラリ作成中
02021
2016/05/25(水) 21:32:34.96ID:???ただJSDocの仕様はどこが正しいのか分からん
乱立している感じなのだろか?
02031
2016/05/25(水) 22:30:44.77ID:???02041
2016/05/26(木) 19:04:37.67ID:???02051
2016/05/26(木) 19:07:58.80ID:???本当動的インプリンタ言語嫌い
0207nobodyさん
2016/05/26(木) 19:33:43.03ID:???0209nobodyさん
2016/05/26(木) 19:59:33.02ID:???巨大掲示板群を作るのではなくOSS配布が目的なの?
0210nobodyさん
2016/05/26(木) 20:10:55.24ID:???02111
2016/05/26(木) 23:07:33.49ID:???とりあえず今回はPHPで作ってみます
サーバーサイドはクライアントサイドに比べるとあまり複雑ではないので、移植しようと思えば結構すぐ出来そうですし
>>210
一番ではないですが、それもありますね
0212nobodyさん
2016/05/27(金) 11:47:01.69ID:???だいぶ上がってるみたいだし、オンラインヘルプ充実してるし俺は良いと思うけど
Node.jsなんかは作りやすいものなのか?
0213nobodyさん
2016/05/27(金) 12:15:09.23ID:???nodeよりはタイプヒントつけられるPHPのほうがマシ
PHP7.1でプロパティの型も入りそうだし
0214nobodyさん
2016/05/27(金) 12:44:59.76ID:???注意力がないというか
0215nobodyさん
2016/05/27(金) 13:01:35.98ID:???動的のせいにするような人は静的でもあまり…
0216nobodyさん
2016/05/28(土) 00:15:16.67ID:AXBYWEwi0217nobodyさん
2016/05/28(土) 00:18:18.29ID:???0218nobodyさん
2016/05/28(土) 00:24:09.68ID:???0219nobodyさん
2016/05/28(土) 01:12:32.12ID:???02201
2016/05/28(土) 09:48:33.10ID:???先月までイントランスってずっと読んでた
02211
2016/05/28(土) 10:23:30.26ID:???めっちゃ混乱した
02221
2016/05/28(土) 10:50:33.77ID:???とりあえず、ユーザー登録とスレ建てにはキャプチャ認証つけたよう
02231
2016/05/28(土) 10:50:50.51ID:???○つけよう
02241
2016/05/28(土) 10:53:46.94ID:???02251
2016/05/28(土) 10:58:06.59ID:???02261
2016/05/28(土) 13:53:54.23ID:???スレ建て時の認証はいいや
本番稼働時はかなり厳しい制限する予定だし
02271
2016/05/28(土) 14:38:38.31ID:???02281
2016/05/28(土) 23:09:27.15ID:???javaScriptはNodeの事言っているのか、クライントの言っているのか分からない解説が多い気がする
http://qiita.com/ayasuda/items/92221229e8f8c65c6f7c
02291
2016/05/28(土) 23:15:02.03ID:???02311
2016/05/28(土) 23:28:02.40ID:???nodeはphpとかperlとかrubyみたいな事をする言語と思っていたんだが違うのだろうか
02321
2016/05/28(土) 23:30:02.90ID:???デスクトップアプリは単一言語で開発(WPFとかはあるけど・・・)出来て楽だったけどWEBは言語多いし難しい
0233nobodyさん
2016/05/28(土) 23:46:18.76ID:???ブラウザ上はご存知の通りDOMやそれに関連した操作を行うためのもので制限も多いが、これが基本
そのためのライブラリがJQueryとかAngular.jsとかVue.jsとか
javascriptをブラウザ以外でも使えるようにしたのがNode.js
ブラウザ上ではないので他の言語と同じようにほぼ自由になんでも出来る
パッケージマネージャとしてnpm、タスクランナーとしてgulpなど様々なツールがある
大雑把な理解はこんな感じ
0234nobodyさん
2016/05/28(土) 23:55:30.99ID:???PerlやPHPなどは言語 = 実行環境みたいなものだから混乱しやすいね
一応C#もC#という言語と.NETという実行環境な感じで分かれてなかったっけよくしらんけど
0235nobodyさん
2016/05/29(日) 03:25:55.75ID:???サーバーサイドって何を使うか迷うね
クライアントとサーバーで共通の言語使えるのが一番楽だけど
Node.jsってPHPなんかに比べてサーバーアプリ作りやすいのかな?
しかも投資効率ということを考えると、RubyやPythonの方が将来性あるのかとか
いろいろ迷うね
02361
2016/05/29(日) 22:23:37.62ID:???.NETと同じような物か
納得した
あと、JQueryから逃げるために、頑張って自力でタブ作った
次はモーダルウィンドウ
02371
2016/05/29(日) 23:33:03.85ID:???中央表示は分からん・・・
これでJQuery UIからは逃げられたから、あとはJQueryから逃げればいい
0238nobodyさん
2016/05/30(月) 08:38:42.12ID:???0240nobodyさん
2016/05/30(月) 13:45:49.40ID:???02411
2016/05/30(月) 18:11:10.84ID:???02421
2016/05/30(月) 18:29:27.79ID:???02431
2016/05/30(月) 18:48:42.47ID:???2chのソース貼り付けしにくいし
あと&ってエスケープしないと本当に危険なんだろうか?
02441
2016/05/30(月) 18:52:14.27ID:???http://shimax.cocolog-nifty.com/search/2007/12/php_f864.html
UTF-8だからとりあえずはいいか
02451
2016/05/30(月) 18:57:35.57ID:???$の前に半角スペース入れれば全く同じ動作する
02461
2016/05/30(月) 23:32:46.98ID:???0247nobodyさん
2016/05/31(火) 08:50:59.54ID:???0248nobodyさん
2016/05/31(火) 09:06:57.79ID:???02491
2016/05/31(火) 17:28:24.29ID:???恥ずかしい
インスタンス
0250nobodyさん
2016/06/01(水) 09:32:20.94ID:???0252nobodyさん
2016/06/01(水) 18:56:45.44ID:???ファイルごととか見たことない
■ このスレッドは過去ログ倉庫に格納されています