トップページ⇒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も提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
0002nobodyさん2016/04/24(日) 09:11:09.09ID:???
現在中核部分を作っています
0003nobodyさん2016/04/24(日) 11:10:56.66ID:???
普段c#でプログラム組んでいるので、オブジェクト指向で作っていく予定です
0004nobodyさん2016/04/24(日) 11:46:44.86ID:???
GitHub作りました
https://github.com/kgtkr/2chat
0005nobodyさん2016/04/24(日) 22:54:01.29ID:???
クラス設計はある程度時間を掛けて行います
PHPは簡単に書ける分、コードが汚くなりやすいみたいですので・・・
0006nobodyさん2016/04/24(日) 22:57:03.03ID:???
まずデータベースに依存しない主要なロジックから考えようぜ
永続化の実装、つまりmysqliなどはまだコードに出なくていい
0007nobodyさん2016/04/24(日) 23:03:15.96ID:???
DBを使った本格的なWEBアプリは初めてなので、そこが悩んでいるんですよね
まだメソッドの中身は書かずに、メソッドの宣言だけを書いてクラス設計を行っています
デスクトップアプリでのオブジェクト指向はある程度分かるんですが、DBを使ったオブジェクト指向が結構難しくて・・・
c#と違ってプロパティがないのも厳しいです
0008nobodyさん2016/04/25(月) 00:00:42.13ID:???
PHPで作るメリットが何かあるん?
Node.jsやPythonとか、他にも候補にがありそうだが
0009nobodyさん2016/04/25(月) 00:15:05.76ID:???
javaは大規模システムでないとメリット薄いみたいですし、c#はLinux鯖だと使えない(Monoはありますが・・・)からです。
そうすると扱える言語はPHPしかないので・・・
中括弧言語以外は苦手ですし
0010nobodyさん2016/04/25(月) 09:23:17.98ID:???
C#からならPHP7で正解じゃないかなあ
とりあえずPSR読んで、それとテスト書く準備しておけばいいよ
001112016/04/25(月) 18:46:27.88ID:???
パフォーマンスとカプセル化を考えたら、Thread has-a Responseの関係はなくした方がよさそう
内部ではフィールドにあるんじゃなくて、Threadクラスのgetterでクエリー呼び出しているんだけど
全て独立したクラスとして考えた方が、良い気がする
WEBアプリはやっぱり難しい・・・
デスクトップなら多少パフォーマンス悪くても、問題ないけど、WEBアプリは大人数で使うからパフォーマンスはやっぱり重視しないとね・・・
0012nobodyさん2016/04/25(月) 20:17:34.90ID:???
パフォーマンス気にするのはリリースしてそこそこの人気サービスになってからにしてくれ
まずは実装ではなく仕様を煮詰めていかないと
ある程度仕様が決まったらフレームワークとか決めてそこから本格的にクラス設計(まさかフレームワーク使わず全部自分でとは言わないよね?)
001312016/04/25(月) 20:29:42.47ID:???
確かにまだ早いですね
フレームワークの予定はなかったんですが、使った方がいいですかね?
PHPでは、APIの提供のみを行い、UIはhtmlとjsのみで作りたいと考えています
001412016/04/25(月) 20:37:28.05ID:???
閲覧中のスレリストやNGリストもサーバーに保存し、APIとして読み込み/書き込みを出来るようにすることで、どのようなアプリでも同期出来るようにしたいと考えています
APIは、XML/JSON/JSONP/2ch互換のdatで提供する予定です
0015nobodyさん2016/04/25(月) 21:44:24.42ID:???
ユーザー登録必須だと興味すら持たれんだろうなあ
読み書きはレベル0のゲスト扱いで参加できるのかな
0016nobodyさん2016/04/25(月) 21:59:23.79ID:???
idとパスワードだけで出来るので簡単に出来ます
redditみたいな感じです
0017nobodyさん2016/04/25(月) 22:04:06.33ID:???
少なくとも気軽に中の様子を伺えないと見向きもされないと思う
idとパスワードだけでもハードルはかなり上がるから2ch越えるのは絶対無理
001812016/04/25(月) 22:48:29.11ID:???
読み取りだけなら認証なしで出来ますが、クロスドメイン対応にする予定なので、認証なしで行うと悪意のあるサイトがこっそり書き込んだり出来るので危険なんですよね・・・
0019nobodyさん2016/04/26(火) 11:57:33.77ID:???
とりあえずSPA取り入れたほうがいい
んでもって認証は後回しの設計と言うか別のサーバとか
プロセスに委任する形にしようぜ
まずはスクラッチとして本体だけの設計で作ってみたらどう?
認証後回しにするってのはそれが阻害する場合があるから
とりあえず作ることによって誰がどんなもののためにどうして必要なのかが見えてくる
ある程度の想定した問題に対応するのはいいとして仮定の問題に固執して対応するのは現状いらんと思うな
アイパスとか個人設定とか細かい面倒なのは後回しにしたほうが楽しめる
002012016/04/26(火) 17:59:11.72ID:???
シングルページアプリですかね?
今はDBと接続するクラスを作っています
多分モデルって奴です
0021nobodyさん2016/04/26(火) 20:14:15.16ID:???
名前空間つけてくれ
002212016/04/27(水) 00:02:44.58ID:???
>>21
C#の使い方と少し違うみたいなので、明日しっかり調べてします
002312016/04/27(水) 00:07:04.34ID:???
とりあえずコミットしました
002412016/04/27(水) 17:31:27.88ID:???
クラス設計終了しました
002512016/04/27(水) 17:33:51.47ID:???
ToDo
・ドキュメントコメント通りの動作をするように、エラーチェックとクエリーを行っていく
・このクラス群をAPIとして提供するためにラップ
・jsでUIを作る
002612016/04/27(水) 18:19:17.43ID:???
PHPのコーティング規約全く守ってなかった・・・
大文字小文字直そう・・・
002712016/04/27(水) 18:26:07.36ID:???
括弧の位置、フィールド名、ローカル変数名、クラス名、メソッド名、ネームスペース名はjavaの規約に合わせて書きます
0028nobodyさん2016/04/27(水) 19:06:13.28ID:???
テスト書いていこう
002912016/04/27(水) 20:03:03.06ID:???
実は今までテストした事ないんですよ
javaとかc#でも色々なアプリ作りましたが、一回もした事ないので何をすればいいか。。
でもWEBアプリなら脆弱性に繋がったりするので必要ですよね
勉強してみます
0030nobodyさん2016/04/28(木) 07:16:10.47ID:???
PHPUnit が有名
FW導入した方がいいよテスト関連も充実してるし
SPAとか使うならそっち関連の導入もあるし
0031nobodyさん2016/04/28(木) 16:55:45.15ID:???
テストは後回しでもいいよ
使い捨てのつもりでいいからとりあえず動くものを作ってまずは1つ完成させること

完璧を目指して手が止まるのが一番まずい
百聞は一見に如かず、実物の試作品があればいろいろと意見も出しやすいし
003212016/04/28(木) 18:01:16.00ID:???
今は中身を書いています
コメントでメソッドの責任は書いたので、あとは実装するだけです
003312016/04/28(木) 18:18:39.80ID:???
メモ
$delete
$attack
$category
$template
$title
003412016/04/28(木) 18:34:56.96ID:???
追記
$not
003512016/04/29(金) 18:14:46.02ID:???
変数の宣言とスコープがないから、いつの間にか上書きしていたりして怖い
003612016/04/29(金) 23:59:23.36ID:???
とりあえずResponseクラス作りましたが、ソースが酷い(特にWriteResponse)ので、privateメソッドなどを使い整理します・・・
あまり長いメソッドだと、変数の上書きなどで、バグが発生する可能性があるので・・・
003712016/04/30(土) 14:10:30.08ID:???
メモ
SHA256を64進数
003812016/04/30(土) 17:36:20.68ID:???
2chでいうIDもトリップも43文字とかいうかなり長い文字列になってしまった・・・
003912016/04/30(土) 17:38:06.14ID:???
パスワードハッシュは43文字にして、IDとトリップは先頭から○文字を切り取る的な事すればいいか
004012016/05/01(日) 00:01:30.60ID:???
名前も目指している機能も似たようなサービスを見つけてしまった・・・
0041nobodyさん2016/05/01(日) 00:10:12.39ID:???
気にすんなよ!!!
0042nobodyさん2016/05/01(日) 11:31:02.55ID:???
どうせ違うものになるから平気
なんてサービスなのさ
004312016/05/01(日) 12:29:06.44ID:???
>>42
にちゃっとるって奴です
0044nobodyさん2016/05/01(日) 12:35:15.36ID:???
>>43
会員制ではないし、idも表示されないやん
0045nobodyさん2016/05/01(日) 12:39:10.92ID:???
というか、認証必須にするのにidを表示するとはこれいかに
匿名にしたいのか、登録ユーザ性にしたいのか、よくわからん
■ このスレッドは過去ログ倉庫に格納されています