トップページ⇒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も提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
0599nobodyさん2016/09/17(土) 23:02:41.15ID:???
業務とかに比べると全然ちいさいよ。
業務だとテーブルだけでも何十、何百って数あるんだから。
で、それらのテーブルを複数結合したり、バッチで何十のテーブルを見て更新かけたり。

だからテーブル数5,6って学生の宿題用(テーブル数2,3?)に毛が生えたぐらいの規模だと。
2chだってもともと小機能なんだし。ただ、小機能とはいえユーザー数は
圧倒的だから。そこらへんはまた単純に作るだけじゃなく別のノウハウが必要だと思う。
060012016/09/17(土) 23:07:40.52ID:???
>>599
テーブルが何百って…そんなにあるのか
2chは単純だからな。ユーザーが多い以外に良い所がない気もするけど、掲示板だとユーザーの数が最大のメリットになるし
専門学校とか大学の工業科ってこういうの作ったりするの?こういう系の仕事するなら工業科進んだ方がいいかな
060112016/09/17(土) 23:09:46.74ID:???
2chってどういう負荷分散しているんだろう
gzipの存在知らなくて転送量で死に掛けた時期があったらしいし、技術と言うより単純な仕組みだから負荷少ないのだろうか
060212016/09/17(土) 23:12:09.04ID:???
web.xml凄く読みにくいし書きにくい
csv→xmlの簡単な変換器作った方が早そう
0603nobodyさん2016/09/17(土) 23:22:30.64ID:???
URLの設計の方は考え出してるの?
/api/v1/ここどうするの?
060412016/09/17(土) 23:25:59.77ID:???
>>603
/api/http/hoge/foo/…にする
今後socketとか作る可能性もあるから
060512016/09/17(土) 23:26:23.63ID:???
例えば
/api/http/topic/write/
みたいな
0606nobodyさん2016/09/17(土) 23:30:10.83ID:???
RESTful API的にはアレだけど。いっか。
必要な情報は全部、クエリ文字列で渡すんでしょ?
060712016/09/17(土) 23:40:46.58ID:???
>>606
トークン以外は全部クエリで渡す
xmlで渡したりするのが本当らしいけど、それにメリットあまり感じないし
0608nobodyさん2016/09/17(土) 23:47:54.31ID:???
メソッドもGET,POSTの2つで、パラメータはクエリ文字列経由で渡してで
RPC的なTwitter APIぽくしてるってことね。
了解。
060912016/09/17(土) 23:51:34.62ID:???
TwitterAPI結構参考にした
直接触った事はなくても、4j使って触った事はあるから他のに比べたら分かるし
061012016/09/18(日) 00:00:21.08ID:???
node.jsの実験の為にcsv→xml変換器作ったら凄く楽だった
オープンオフィスでAPIリスト作れば自動で変換してくれる
061112016/09/18(日) 00:26:10.28ID:???
tomCatが起動しないからテスト出来ない
0612nobodyさん2016/09/18(日) 11:59:41.41ID:???
tomcatいる?javaなんか
まあAppServer無くてもjarは動かせるが
061312016/09/18(日) 12:12:33.89ID:???
web.xmlがあるとエラーで落ちる
別にクラスパス間違っている訳じゃないし
0614nobodyさん2016/09/18(日) 13:20:47.67ID:???
クラスパスに言及が行くってことはClassNotFoundExceptionかな?
まあ色々ややこしいとこはあるかなあ
061512016/09/18(日) 13:24:53.37ID:???
"(TOM_CAT)\webapp/Nch.war"に配置したら
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Nch]]

エクリプスから実行したら
情報: サービス Catalina を起動します [日 9 18 13:23:35 JST 2016]
情報: Starting Servlet Engine: Apache Tomcat/8.0.32 [日 9 18 13:23:35 JST 2016]
情報: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [185] milliseconds. [日 9 18 13:23:36 JST 2016]
重大: A child container failed during start [日 9 18 13:23:37 JST 2016]
重大: A child container failed during start [日 9 18 13:23:37 JST 2016]
重大: The required Server component failed to start so Tomcat is unable to start. [日 9 18 13:23:37 JST 2016]
情報: Pausing ProtocolHandler ["http-apr-8080"] [日 9 18 13:23:37 JST 2016]
情報: Pausing ProtocolHandler ["ajp-apr-8009"] [日 9 18 13:23:37 JST 2016]
情報: サービス Catalina を停止します [日 9 18 13:23:37 JST 2016]
情報: Destroying ProtocolHandler ["http-apr-8080"] [日 9 18 13:23:37 JST 2016]
情報: Destroying ProtocolHandler ["ajp-apr-8009"] [日 9 18 13:23:37 JST 2016]
0616nobodyさん2016/09/18(日) 15:15:31.08ID:???
とりあえずnchの事は忘れて、1つのサーブレット作って起動。
それからじゃな。
0617nobodyさん2016/09/18(日) 15:18:58.45ID:???
普段GlassfishだからTomcat忘れとるなあ、、、ちょっと動かしてみるかな
061812016/09/18(日) 15:24:07.23ID:???
Glassfishの方がいいの?
0619nobodyさん2016/09/18(日) 15:32:43.63ID:???
>>617
サーブレットって引数なしのコンストラクタ以外のコンストラクタって
定義できる??。俺はそれが気になるわ。>>514に書いたけど。
062012016/09/18(日) 15:36:34.74ID:???
>>619
HttpApiBaseは親クラスだから関係ないと思ってたんだけど違う?
web.xmlに書いているクラスは全て引数無しのコンストラクタ
0621nobodyさん2016/09/18(日) 15:42:16.46ID:???
あ、ごめん。
子クラスでコンストラクタの宣言ないとデフォルトの引数なしの
コンストラクタが宣言されたことになるんだっけ???
Scalaが?
そんだったら問題ないね。すまん。
062212016/09/18(日) 15:45:56.70ID:???
>>621
javaもコンストラクタがないクラスはコンパイル時に自動で追加される
0623nobodyさん2016/09/18(日) 15:50:08.08ID:???
>>622
追加されるのは、親クラスに引数がないコンストラクタがある場合じゃなかったけ??
親クラスに引数があるコンストラクタがある場合、
子クラスで勝手に引数なしのコンストラクタ追加しようがないじゃん。
親クラスのコンストラクタに渡す引数が不明なんだから。
062412016/09/18(日) 15:56:25.13ID:???
>>623
あーそういう事か
scalaはクラス宣言がそのままデフォルトコンストラクタになって、括弧も省略できるから

class Hoge extends Base(1)
は
public class Hoge extends Base{
  public Hoge(){
    super(1);
  }
}
と同じ
0625nobodyさん2016/09/18(日) 15:59:54.36ID:???
>>624
そういうことか。なるほど。
>>516の説明じゃちょっと納得できなかったから。
お手数かけました。
062612016/09/18(日) 16:02:17.93ID:???
あとはifとかtry-catchが式だったり
中括弧で囲むと複式になったり…
そこらへんは考え方の違いと言うか…
062712016/09/18(日) 16:03:14.83ID:???
まだScala触り始めて10日だけど
062812016/09/18(日) 16:12:12.19ID:???
TomCatが起動しない原因が全く分からない
一回消して入れなおすしかないのだろうか
Neonにバージョンアップもしたいし
062912016/09/18(日) 16:44:08.77ID:???
プロジェクトフォルダ整理していたらjava初めてすぐの頃に作った物が大量に…
ゴミばっかり
0630nobodyさん2016/09/18(日) 17:37:47.11ID:???
Tomcatは使わず、それぞれ単独インストールする方が良いと思ってる
063112016/09/18(日) 18:42:08.09ID:???
servlet-classに存在しないクラスを指定したら一応起動する(アクセスしたら当然エラーだけど)
謎すぎる
063212016/09/18(日) 18:52:05.40ID:???
もしかするとtomcatがおかしいかもしれないから8.8→8.10にバージョンアップしてみる
063312016/09/18(日) 19:46:44.95ID:???
やっぱり無理
他のクラス作ってしてみたら出来た…
何故だ
0634nobodyさん2016/09/18(日) 20:38:28.79ID:???
少しずつ動作確認しないで作るとこうなっちゃうわけだ。
HttpServletBaseどんどん動くとこまでコード削ってて、原因突き止める?
一度にすべてのバグの嵐に見舞われるわけだし。
0635nobodyさん2016/09/18(日) 20:42:54.10ID:???
少しずつ作って・実行なら対処するバグも1度に数個で
自分がちょっと前に追加したコードが原因だろうから範囲が狭くて見つけやすいけど。

完成するまで全く実行・デバッグしないでつくる->いざ、実行時に1度に大量のバグに見舞われる。
手に負えなくなるよ。
063612016/09/18(日) 21:11:07.29ID:???
まさかここで詰まるとは思っていなかった
原因が全く分からないし
昨日の夜から全く原因が分からん
063712016/09/18(日) 21:21:46.42ID:???
今日1日あったら解決すると思ってたのに
063812016/09/18(日) 21:28:29.48ID:???
NoClassDefFoundError、ClassNotFoundExceptionも大量に…
063912016/09/18(日) 21:49:30.66ID:???
HttpApiBaseを継承したら起動できないみたいだな
ここ調べた方がよさそう
0640nobodyさん2016/09/18(日) 22:12:21.92ID:???
はは。
064112016/09/18(日) 22:14:45.70ID:???
ここまで原因が見つからないって…
064212016/09/18(日) 22:28:22.44ID:???
キツイ…
0643nobodyさん2016/09/19(月) 10:06:23.73ID:???
なんか現象の起きる最小のjar作れん?
もしかしてGitHubからもってくればこっちで再現できたりする?
064412016/09/19(月) 10:40:42.90ID:???
>>643
今Pushしたから多分再現できる
環境が悪いのか、バグなのか分からないから動かしてくれると助かる
他にも色々バグありそうだけど、とりあえずTomcatの起動したい
064512016/09/19(月) 10:50:06.29ID:???
最小のjarは原因が不明だから難しい
064612016/09/19(月) 10:53:42.41ID:???
abstract class TestBase(private val httpMethod: HttpMethod, private val tokenFlag: TokenFlag, private val strParams: List[String], private val intParams: List[String]) extends HttpServlet {
}

class Test extends TestBase(HttpMethod.GET,TokenFlag.UNNECESSARY,List(),List()){
}

だとエラー

abstract class TestBase() extends HttpServlet {
}

class Test extends TestBase(){
}

だと動く
064712016/09/19(月) 10:59:55.64ID:???
abstract class TestBase(private val i:List[Int]) extends HttpServlet {
}

class Test extends TestBase(List()){
}

だとエラー

abstract class TestBase(private val i:Int) extends HttpServlet {
}

class Test extends TestBase(1){
}

だと動く
064812016/09/19(月) 11:02:26.71ID:???
abstract class TestBase(private val i:Map[String,String]) extends HttpServlet {
}

class Test extends TestBase(Map.empty){
}

だと動く
064912016/09/19(月) 11:05:08.84ID:???
List.empty…起動する
List()…エラー
065012016/09/19(月) 11:05:58.97ID:???
List(1)…エラー
使えないじゃん
065112016/09/19(月) 11:06:50.06ID:???
当然
List.apply(1)
でも駄目
065212016/09/19(月) 11:07:52.96ID:???
原因は分かった…でも何故?
謎でしかない
065312016/09/19(月) 11:22:55.46ID:???
原因判明したから質問サイト行ってくる
0654nobodyさん2016/09/19(月) 14:23:01.82ID:???
teratailか?stackoverflowか?2chか・・
065512016/09/19(月) 14:25:33.39ID:???
teratail
https://teratail.com/questions/48511
065612016/09/19(月) 14:47:02.51ID:???
ListじゃなくてArrayなら大丈夫みたいなのでとりあえず代用します
065712016/09/19(月) 14:54:59.36ID:???
でも本当何故エラーになるんだろう
065812016/09/19(月) 14:57:27.83ID:???
あれっ出来ない
065912016/09/19(月) 15:00:23.57ID:???
謎
066012016/09/19(月) 15:18:55.33ID:???
List以外にも原因ありそう
066112016/09/19(月) 16:03:55.92ID:???
もうこれどうなってるか分からん
0662nobodyさん2016/09/19(月) 16:43:56.86ID:???
なんか面白そうなスレめっけたw
こういう系のスレでちゃんと進んでるっぽいのは珍しいなw
0663nobodyさん2016/09/19(月) 16:48:31.02ID:???
くるタイミングおっそいわww
>>1はそろそろモチベーション切れかけてまた、2,3か月の休息とるんじゃねぇか。
066412016/09/19(月) 16:50:34.98ID:???
既にモチベ死にかけている
やっとサーバーサイド終わったと思ったらTomcatが動かないとか悲しすぎる
066512016/09/19(月) 16:51:46.20ID:???
Tomcatが動けばクライアントサイド始められるのに
066612016/09/19(月) 16:53:27.56ID:???
適当にプロジェクト分割してみる
0667nobodyさん2016/09/19(月) 16:56:08.96ID:???
Scalaとか使うからだなwwユーザー少ないし。
短くかけるってことは、裏で前提として覚える事がいっぱいあるから短くかけるんでって、
そんなのすぐれた言語とは思わん。

何事もバランス。そこそこ短くかけて、前提となる覚える事も少なくてみんな理解しやすい。
これで十分だわ。
066812016/09/19(月) 16:56:41.87ID:???
>>667
twitterもscalaだからwebには強いはず
0669nobodyさん2016/09/19(月) 17:01:43.62ID:???
Webとはあんま関係ないな。
Scalaは言語とコレクションのクラスライブラリぐらい?独自に提供してるの?
Web部分はJavaのライブラリに依存してるだろ。
067012016/09/19(月) 17:03:25.18ID:???
>>669
コレクションは不変のが結構ある
0671nobodyさん2016/09/19(月) 17:19:14.16ID:???
なんだモチベ尽きかけてんのかw
趣味プロジェクトでモチベは最大の敵だからなw
067212016/09/19(月) 17:21:08.72ID:???
Tomcat9って評価版だったのか
これ多分Tomcatのバグだわ
Tomcat8にする
067312016/09/19(月) 17:21:48.66ID:???
そういう事だったか
067412016/09/19(月) 17:23:32.54ID:???
これで直らなかったら知らん
0675nobodyさん2016/09/19(月) 17:28:42.70ID:???
俺もそう思うときあるけど、最終的には自分のコードに問題あるから。
0676nobodyさん2016/09/19(月) 17:30:04.94ID:???
つか、コンストラクタに問題ありそうだったら、コンストラクタに
引数渡すのやめてみればいいじゃん。とりあえず、それで回避したら?]。
067712016/09/19(月) 17:31:11.55ID:???
>>675
俺も何回もそういう経験あるけど今回はバグ以外に見当たらない
特定の場面だけエラーとかあるん?

>>676
それならできた
0678nobodyさん2016/09/19(月) 17:37:00.87ID:???
ロクすっぽテストケースも書いてないプロジェクトとTomcatと
どっちが信頼性あると思ってんだよ。
067912016/09/19(月) 17:39:45.10ID:???
評価版ってバグが大量にあるバージョンではないの?
068012016/09/19(月) 17:44:11.59ID:???
動かないけどエラーメッセージがさっきと違う
これはヒントになりそう
068112016/09/19(月) 18:05:12.96ID:???
普段なら3時間あれば解決するのに何で2日経っても解決しないのか
068212016/09/19(月) 18:07:42.95ID:???
おっ
068312016/09/19(月) 18:10:22.69ID:???
scalaで似たようなエラーがstackoverflowにあったから確かめてみる
068412016/09/19(月) 18:14:09.10ID:???
キタ――(゚∀゚)――!!キタ――(゚∀゚)――!!キタ――(゚∀゚)――!!
やっと起動したーーーーーーーーーー
068512016/09/19(月) 18:15:26.62ID:???
WEB-INF/libにscala-library.jar入れたら出来たーーーーー
2日潰れたけどやっとクライアントサイド出来る
scalaでservletのページには載ってなかったけど英語のページに乗ってた
068612016/09/19(月) 18:16:55.86ID:???
よっしゃ
068712016/09/19(月) 18:17:02.44ID:???
疲れた
068812016/09/19(月) 18:20:17.58ID:???
Eclipseのjar追加で参照しても駄目とか聞いてない
手動コピー必須なのかよと
って事でサーバーサイドデパッグしながらクライアント進めていきます
068912016/09/19(月) 18:21:44.49ID:???
>>675
>>678
これがあってたorz
0690nobodyさん2016/09/19(月) 21:36:36.08ID:???
どう?Next2ch超えれそう?
069112016/09/19(月) 21:45:34.02ID:???
>>690
Next2chは名前は聞いた事あるけどどういう物かを知らない
とりあえずangular2覚える
0692nobodyさん2016/09/19(月) 21:48:58.73ID:sayZi2XP
>>690
super2ch.netじゃなくて?
069312016/09/20(火) 00:05:29.54ID:???
これ駄目だ
angular2難しすぎて意味が分からん
これ覚えていたら確実にモチベ死ぬ
とりあえずvueで作って見た方がいいかも
angular2使っていたら完成する気がしない
069412016/09/20(火) 00:07:07.99ID:???
vueの場合、scriptタグで読み込めば終わりだったけど、angularは色々しないといけないらしくて理解出来ない
TypeScript使いたかったけど
069512016/09/20(火) 00:10:54.96ID:???
日本語の解説が多いからvue.jsは本当楽
0696nobodyさん2016/09/20(火) 10:21:47.07ID:???
1年後も言語とフレームワークの選定やってそう
0697nobodyさん2016/09/20(火) 16:07:13.80ID:???
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015

Haxeプログラミング入門、尾野政樹、2015

Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS, Flash, PHP, C++, Java, C#, Python に書き出せる。
Windows8.1対応

IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
069812016/09/20(火) 17:08:23.06ID:???
angular2昨日は初めてだったから意味分からなかったけど2日目になると少し分かってきた
流石に1日で投げるのは早かった
069912016/09/20(火) 17:08:54.17ID:???
とりあえずHelloWorldは出来た
■ このスレッドは過去ログ倉庫に格納されています