トップページ⇒php
1002コメント237KB

【PHP】2chat開発スレ【2chを越える】 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2016/04/23(土) 13:45:28.79ID:???
【2chatとは】
掲示板とチャットを組み合わせたオープンソースのPHPスクリプトです。
名前の由来は2ch+chat

【特徴】
*基本的な面
ユーザー登録は必要だが、匿名
ユーザーは日付の経過や書き込み、荒らしなどでレベルが上下し、このレベルは通報の影響度などに関わる
管理人が不在でも通報が集まった書き込みは自動削除
チャット形式の為、書き込み上限はなく、テンプレはいつでも誰でも編集可能
板はなく、各スレッドはカテゴリを付けられる為、スレッドを探しやすい
単発スレには向かない

*専ブラ
jsを使い専ブラなしで快適に閲覧出来るUIを提供
WEBで見れるため、PC⇔スマホで開いているスレなどを完全同期できる

*API
誰でも使えるAPIを提供(jsonp対応)
2ch互換のAPIも提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
0348nobodyさん2016/09/04(日) 15:53:47.02ID:???
ああ。チェック例外か。チェック例外の良し悪しはまだ断定できんな俺。
でも、結構チェック例外いいかもと思ってる。
034912016/09/04(日) 16:00:01.44ID:???
確かに便利な事もある(ドキュメントの例外部分を見落としていた時に教えてくれたり)けど、、
オプションで指定みたいな事は出来ないのだろうか
035012016/09/04(日) 16:21:54.84ID:???
timeAPIが結構便利そう
035112016/09/04(日) 17:26:15.41ID:???
2chって一ヶ月に7000万くらいレスあるのか
035212016/09/04(日) 17:30:30.15ID:???
Twitterは2ch軽く越えてた
035312016/09/04(日) 20:34:53.79ID:???
とりあえずpushした
035412016/09/04(日) 20:36:08.51ID:???
Repositoryパターンが分かって気がする
035512016/09/04(日) 22:10:52.35ID:???
運営はルール違反には関わっても、マナー違反には関わるべきではないと言うのが個人的な考えだから、不愉快な書き込みには低評価をするシステムは取り入れる
違法な内容とか規約違反とかは通報フォームで済ませるけど
035612016/09/04(日) 22:36:32.46ID:???
DMも実装します
035712016/09/04(日) 22:46:52.57ID:???
・メモ
DMのホワイトリストorブラックリストモードはクライアントで実装出来るのでサーバーサイドでは実装しない
なるべくサーバーサイドは小さくする
035812016/09/04(日) 23:07:43.24ID:???
うわっ
APIリストマークダウンで作ったら文字コードが英語専用になってたからデータ吹っ飛んだ
MarkDown#Editorって奴htmlだとutf-8で出力出来るのにmdだと出来ないんだけど
035912016/09/04(日) 23:50:36.87ID:???
実装が必要な機能を整理する為にまとめました
https://github.com/kgtkr/nch/blob/master/api.md
0360nobodyさん2016/09/05(月) 00:16:09.63ID:???
今更だけど、まず1が2ちゃんねるについて理解してるのかが謎なんだよな
0361nobodyさん2016/09/05(月) 09:09:40.30ID:???
そこは別にどうでもいいし、なんとでもなるでしょ
036212016/09/05(月) 15:53:24.15ID:???
「2chについて理解」って例えばどんな事ですか?
ソースを読んだ事はありませんが(perlが分からないので)
036312016/09/05(月) 16:31:50.70ID:???
何かSQLの基本が理解出来ていない気がする
プログラミング言語の感覚だと全く理解できないし
0364nobodyさん2016/09/05(月) 18:27:46.72ID:???
.NETやってたんならLINQ使ってただろ?
036512016/09/05(月) 18:31:51.03ID:???
>>364
javaの方がいいと言われたのでjavaにしました
本当はリンク使いたいですが…
036612016/09/05(月) 18:43:45.84ID:???
あっ読み間違えた

.NETでDBを使ったことはなく、LINQはこれから勉強しようと思っていた所なのでまだ使った事はありません
0367nobodyさん2016/09/05(月) 18:51:49.35ID:???
そっか。基本的な操作ぐらいはすぐ覚えれるだろう。
まぁ、ものにするには、慣れるしかないけど。
俺は昔にOracle(SQL)を触りまくって覚えて、最近、全然データベース触ってないけど、
触りまくったらからなんとか今でもサクッと書ける。そりゃ細かい構文は忘れるけど。
036812016/09/05(月) 18:56:14.95ID:???
本当に基本的な物なら分かるんですが、少し複雑な事をしようとするとどうすればいいか分からなくなるんですよね
入門サイト見ても追加、更新、削除、検索の基本くらいしか載っていないので…
036912016/09/05(月) 18:58:20.34ID:???
Query外部ファイル化面倒だし、だからと言って一行に書くわけにもいかない
メソッドチェーンで文字列を作っていって、toString()でQuery文字列に変換みたいな事出来ないだろうか
037012016/09/05(月) 19:05:59.31ID:???
stream-apiって言うのがjavaにあるらしいがSQLで使う事出来ないのか?
ggっても出てこないんだけど
037112016/09/05(月) 23:03:06.58ID:???
SQL文ってやっぱり外部ファイル化した方がいい?
0372nobodyさん2016/09/05(月) 23:38:28.62ID:???
いや、さすがにそれはしないな・・
0373nobodyさん2016/09/05(月) 23:40:30.37ID:???
ユーザーが変更できるようにそういう目的があるならしてもいいかもしれんが、
SQL分を埋め込まなきゃいけないのは宿命。もしくは、
ORMに逃げる。
0374nobodyさん2016/09/05(月) 23:41:44.09ID:???
というか、そういうクソSQLというかデータへのアクセスを1か所にまとめるために、なんとかパターンとかあるわけで。
リポジトリパターンもそんな感じじゃねぇのかな?
037512016/09/05(月) 23:46:37.63ID:???
別に変更の必要はないんだけど、javaだと1行で書くか、複数行を頑張って書くかしか選択肢ないのが辛い
037612016/09/05(月) 23:48:35.26ID:???
こうやって行ごとに+演算子とリテアル書かないといけないからかなり読みにくいんだよな

"CREATE TABLE topic("
+ "id int NOT NULL PRIMARY KEY AUTO_INCREMENT,"
+ "title text NOT NULL,"
+ "category text NOT NULL,"
+ "text text NOT NULL,"
+ "updatetime datetime NOT NULL,"
+ ""
+ "INDEX(id)"
+ ")"
+ "ENGINE=InnoDB;"
0377nobodyさん2016/09/05(月) 23:53:43.48ID:???
それは、がんばってインデント揃えてスペース入れたりして見やすくするしかないような。
ヒアドキュメントみたいのないんじゃねぇかな。
037812016/09/05(月) 23:55:34.34ID:???
複数行文字列プラグインが消えたのがな…
https://fushihara.org/blog/archives/1657

自作出来ないかな
0379nobodyさん2016/09/06(火) 00:08:45.20ID:???
EclipseのJavaのデフォルトのフォーマッタが邪魔するかもしれんが、
俺は+を後ろにおいて揃えるな。
" CREATE TABLE topic( " +
"  id int NOT NULL PRIMARY KEY AUTO_INCREMENT, " +
"  title text NOT NULL,"
038012016/09/06(火) 00:56:17.95ID:???
>>379
後ろの方が見やすいのかな
前までは後ろ派だったけど前の方が良いって聞いたから前に書くようにしたんだけど…


これさえインストール出来ればいいんだが…
installボタンないからアカウント作ればいいのかと思って作ったけど出てこない
もしかして完全に消えた?何故
https://marketplace.eclipse.org/content/java-multi-line-string-editor
038112016/09/06(火) 22:52:05.68ID:???
ヒアドキュメントを出来るプラグイン探していたら2日潰れた
本当java嫌い
038212016/09/06(火) 23:23:10.96ID:???
仕方ない…とりあえずこのまま頑張るか
038312016/09/06(火) 23:26:54.82ID:???
コピーしたらIDEがエスケープしてくれる機能使って、

/*
ここの元SQL文を書いておく
改行したり
*/
String query="";//←ここに上のコメントの中身をコピー

これなら少しはマシになりそう
雑だけどしばらくはこれで代用するか
ここでプラグイン探したりしていたらモチベ死ぬ自信しかないし
038412016/09/08(木) 17:49:49.04ID:???
TwitterってjavaじゃなくてScalaだったのか
038512016/09/08(木) 20:20:13.73ID:???
3日でScalaに移植しよう
基本クラスの作成は11日までだから間に合うはず
0386nobodyさん2016/09/08(木) 20:23:29.33ID:???
なんかブレブレだけど大丈夫か
038712016/09/08(木) 20:47:43.55ID:???
全然大丈夫じゃない
038812016/09/08(木) 20:49:02.98ID:???
Twitterはjavaで出来ていると思っていたけど、Scalaだと言う事を知ってScalaの方がいいのかなと思って
JVMは好きだけどjavaは嫌いだからScala覚えた方がいいのかなと
038912016/09/08(木) 20:58:31.43ID:???
何かかなり複雑な言語っぽいな
使いこなせたら強力な武器になりそうだけど
0390nobodyさん2016/09/08(木) 21:08:27.74ID:???
目的見失いすぎワロタ
039112016/09/08(木) 21:12:13.43ID:???
javaerがScalaerに3日でなれるのだろうか
039212016/09/08(木) 21:21:52.20ID:???
Scara入れたらエクリプスが異常に重くなった
0393nobodyさん2016/09/08(木) 22:06:08.52ID:???
5ヵ月目で出来たものは結局20年前からある会員制BBSの劣化β版か…
一生完成しないパターンだから見限るわ
0394nobodyさん2016/09/08(木) 22:06:42.58ID:???
典型的な完璧主義者だな。
度を超すと、物事完成させれなくなるよ。
シューティングゲームの方は完璧主義がたたって壁にぶつかったんじゃないの??
それでこっち逃げてきたとか。
039512016/09/08(木) 22:07:24.97ID:???
STGはそんなにぶれていない
こっちはブレブレだけど
039612016/09/08(木) 22:12:01.54ID:???
もう5ヵ月か…
PHP→javaよりはjavq→Scalaの方が楽だろうけど
039712016/09/08(木) 23:00:15.26ID:???
思ってたよりjava→scalaの移植簡単だ
039812016/09/08(木) 23:11:20.13ID:???
Scalaらしさとか追及していたら時間掛かりすぎてモチベ死ぬだろうから、そういうのは全く考えずにとりあえず移植する
0399nobodyさん2016/09/09(金) 13:43:10.78ID:???
>>394
作り方に拘って完成に辿り着けないタイプだよね
Twitterのブランド力に影響されてるところからミーハーでもあるけど
ここで「GoogleはPythonを使っているらしい」と指摘したらまた言語を変えて作り始めそう
040012016/09/09(金) 17:36:59.04ID:???
動的言語は苦手だからそれはないと思う
0401nobodyさん2016/09/09(金) 18:54:09.26ID:???
動的言語が苦手ならなぜPHPで作り始めたのか
JavaScriptも苦手っぽいけど、今時静的言語だけで頑張るのは厳しい
0402nobodyさん2016/09/09(金) 18:58:04.81ID:???
Pythonが動的言語かいなかをいいたいんじゃなくて、あくまでPythonは例で、
君の性格について言及するに引き合いにだしただけなのに、
動的言語は苦手だからとか見当はずれなレスして読解力もないのか・・
040312016/09/09(金) 19:00:04.29ID:???
最初からPHPとjavaには不満あったけど、Scalaは結構合いそうだからこのまま進める
0404nobodyさん2016/09/09(金) 19:01:41.17ID:???
Scalaは趣味ではいいけど、仕事の求人数的には役立たずじゃね。
040512016/09/09(金) 19:29:45.30ID:???
>>404
これ趣味だし、好きな言語使いたい
これから普及する可能性もあるし
040612016/09/09(金) 19:31:06.21ID:???
PHPが動的言語と静的言語のデメリットをとった言語なら、Scalaは両方のメリットをとった言語だと思う
0407nobodyさん2016/09/09(金) 23:15:11.36ID:???
javaの上でscala動かすの?
0408nobodyさん2016/09/09(金) 23:20:55.70ID:???
あ?PHPバカにすんなよ
040912016/09/09(金) 23:35:12.40ID:???
>>407
.NET Framework上で動く言語にC#とかVB.NETがあるのと同じで、
JVM上で動く言語にjavaとかScalaがある
0410nobodyさん2016/09/09(金) 23:51:36.80ID:???
疑問が二つ。
このスレに書き込むかは正直どうでもいいのでちゃんと開発し続けているのか
1についていく人間が果たしてどれだけ居るのか
041112016/09/09(金) 23:53:26.31ID:???
今の状態ではついてくる人がいないのは分かっている
ただ開発は続いている
0412nobodyさん2016/09/09(金) 23:54:22.68ID:???
静的型付け言語を
041312016/09/10(土) 00:31:58.25ID:???
明日頑張れば移植終わりそう
TODOは明日までにクラス作って、明後日からDBだから予定変更いらないかも
これ異常予定変更したくないし
041412016/09/10(土) 10:32:12.31ID:???
ソース半分以下になったりするからかなり便利
041512016/09/10(土) 13:50:28.68ID:???
移植完了
041612016/09/10(土) 13:50:52.92ID:???
間に合ったので予定変更せずに進めます
0417nobodyさん2016/09/10(土) 14:41:15.95ID:???
1の予定ではいつ完成するのだろうか
041812016/09/10(土) 16:09:33.38ID:???
>>417
https://github.com/kgtkr/nch/blob/master/todo.md
041912016/09/10(土) 16:09:52.20ID:???
今日までと思っていたら明日までだった
0420nobodyさん2016/09/10(土) 18:27:08.85ID:???
>>418
サーバのToDoしかないようだが…
全て完成するのはいつ?
042112016/09/10(土) 18:51:52.86ID:???
>>420
クライアント側はまだ仕様がしっかり決まってないから分からない
APIの薄いラッパーは1週間くらい
クライアントアプリはサーバーより時間掛かるかも
0422nobodyさん2016/09/11(日) 15:34:42.06ID:???
APIの仕様出たらオレもクライアントアプリ作るよ、ブラウザ使わないやつ
042312016/09/11(日) 17:38:08.69ID:???
>>422
安定して来たらAPIの仕様はドキュメント化します
ドキュメント化する前も一応使えますが、仕様が大幅に変わる可能性もあります
042412016/09/11(日) 17:40:09.81ID:???
ResRepositoryとTopicHistoryRepositoryが終わりました
Scalaの開発効率凄い
0425nobodyさん2016/09/11(日) 17:59:23.75ID:???
まだ、サーバー公開してるわけじゃにし、外部の者が
開発はめんどくさいだろ。
042612016/09/11(日) 18:08:35.24ID:???
サーバーはさくらのVPS借りる予定です
ドメインは一個とってサブドメインにします
042712016/09/11(日) 18:10:40.90ID:???
まだ鯖どころか、スクリプトも完成していないのでクライアント開発は無理ですね
042812016/09/11(日) 18:22:24.69ID:???
2Gプランが1700円くらいか
広告貼って月1000円くらい入ればいいんだが…1700円全額は確実に金なくなる
VIPみたいな書き込みが多くなると、Googleアドセンスは確実にBANされるだろうしどうしようかな
0429nobodyさん2016/09/11(日) 18:38:25.71ID:???
PHPなら無料レンサバで様子みながら、ユーザーが増えて成功しそうなら、
有料に移行できるのになww
まぁ、最初から金を払わざるを得なくて君の本気度が試される。
無料のVPSとかあるのか知らんが。
0430nobodyさん2016/09/11(日) 18:42:13.11ID:???
もう、明日にでもさくらのVPSだかしらんがどこでもいいから契約しろって。
で、自分を窮地に追い込めば、モチベーションも長続きするんじゃね??
043112016/09/11(日) 21:22:32.53ID:???
>>429
PHP→java→Scalaにしてよかったと思ってるよ
かなり開発期間伸びたけど

>>430
それは流石に…


TopicRepositoryとTopicHistoryRepository終わりました
043212016/09/11(日) 21:23:02.14ID:???
TopicHistoryRepositoryは既に言ってた
043312016/09/11(日) 21:48:43.30ID:???
DM機能いらないなこれ
オープンな掲示板にしたいのにクローズな物作るのは違う気がする
要望多ければ後からつけ足せばいいし
043412016/09/11(日) 22:59:01.49ID:???
今日一日作業したらかなり進んだ
043512016/09/11(日) 23:42:21.28ID:???
UserRepository以外のリポジトリは終わりました
UserRは遅いので明日します
GitにPushしました
0436nobodyさん2016/09/12(月) 11:54:05.08ID:???
2chの仕組みとか名前とか入れてるみたいだけど
サーバから2chへのアクセスは無いんだよね?
sakuraのサーバからは2ch一切読みに行けないんで念のため
0437nobodyさん2016/09/12(月) 15:25:23.87ID:???
完全に別のサービスだと思うのにそれはないとおもう。
0438nobodyさん2016/09/12(月) 15:50:38.09ID:???
まあ借りたついでに proxy2ch 置く、とかやらなきゃ問題ないかw
043912016/09/12(月) 17:00:44.99ID:???
scがsakura使ってるからだよね
2chにアクセスする事はないからそれは大丈夫
044012016/09/12(月) 18:40:43.96ID:???
Repositoryクラスが一通り完成しました
エラー処理が終わっていないのでそこを進めていきます
044112016/09/12(月) 18:48:55.02ID:???
現在の設計では1書き込みでかなりDBアクセスをしなければならず、パフォーマンスに問題が発生する可能性が高いです
ただ、実際に動かしながらでも修正出来る部分なので、今はとりあえずこのまま完成させます
044212016/09/12(月) 22:14:59.61ID:???
エラーチェックはユーザーの入力判定を優先して行っていきます(ServerException以外の物)
}
0443nobodyさん2016/09/12(月) 22:18:42.76ID:???
ソース見ていろいろ突っ込みたいところだが、Scalaシラネ。

>パフォーマンスに問題が発生する可能性が高いです
>ただ、実際に動かしながらでも修正出来る部分なので、今はとりあえずこのまま完成させます
だね。どんどん進むべきだな。
でも、やっぱ、ミーハーな君は最終的にはNoSQLとかになるのかな??
俺もNoSQLよくわかってないけどw
0444nobodyさん2016/09/13(火) 05:22:51.06ID:???
リレーショナルじゃないデービーって巨大なテキストファイルと違うの?
0445nobodyさん2016/09/13(火) 11:00:54.20ID:???
どっちかっつーとハッシュ
って環境によって呼び名が変わるけど連想配列とかディクショナリーとかね
0446nobodyさん2016/09/13(火) 11:02:25.19ID:???
ちなみにDBでパフォーマンスが問題になるほどの規模には通常ならん
よほど下手くそに作るのでもなければ
0447nobodyさん2016/09/13(火) 12:40:58.61ID:???
でも、RDBMSは奥が深すぎるからな・・
トランザクションの分離レベルで、シリアライザブルをメインで使うのは駄目かな?
0448nobodyさん2016/09/13(火) 13:26:10.20ID:???
中途半端なリプライ機能いらないと思う。ソース見ると1人にしかリプライしか
できないなんて、クソすぎだろ。
>>21-25
あほ。
とかまとめてリプライできないんだぜ。
2chの劣化にしかならねぇ。
■ このスレッドは過去ログ倉庫に格納されています