ci フレームワーク (1)、ci フレームワーク (_PHP チュートリアル
ci フレームワーク (1)、ci フレームワーク (
ci ディレクトリ構造)
リーリーアクセスフォーム applicationcontrollerswelcome.phpに関数を追加します: リーリー
エントリーファイル.php/controller/action
新しいコントローラーを自分で作成します (hello.php:)
リーリー
注意:
アンダースコアで始まるメソッド名には正常にアクセスできず、間接的にのみアクセスできます。
- パブリックに変更されたメソッドのみにアクセスできます。
- クラスと同じ名前のメソッドはコンストラクターとして扱われるため、使用しないでください。
applicationviewsview_test.php または applicationviewsviewtest.php (このメソッドは主に、管理を容易にするために同じタイプのビューを同じフォルダーに配置しやすくするためのものです) リーリー コントローラー: リーリー または:
リーリー効果:
変数の割り当てコントローラーからビューにデータを転送、コントローラー:
リーリー表示:
リーリー効果:
public
->load->vars("タイトル","値"
);$list = 配列(
配列('id'=>1,'name'=>'jack','email'=>'123@123.com'),
配列('id'=>2,'name'=>'jack2','email'=>'1233@123.com'),
配列('id'=>3,'name'=>'jack3','email'=>'12333@123.com')
);
$data['new_title']="タイトル";
$data['リスト']=$リスト;
$this->load->vars($data);
$this->load->view("view_test");
$this->load->view("フッター");
}
view_test を表示:
リーリー
フッターを表示:
リーリー
表示効果:
uriパラメータ取得
コントローラー:
リーリー
効果:
加载数据库
这个操作在MVC中是放到model中做的。
在\application\config\database.php中配置数据库参数,注意dbprefix和swap_pre这两个参数。在php中写的是前缀,会默认当作swap_pre,然后放到数据库中的时候会转成dbprefix,但是最好两个都弄成一样的。
还有$active_group,默认是default,如果要连接两个数据库,把default另外取名,然后在函数中写明参数就OK。
必须继承数据核心类CI_Model,同时重载父类中的构造方法。
<span>class</span> Model_name <span>extends</span><span> CI_Model { </span><span>function</span><span> __construct() { parent</span>::<span>__construct(); } }</span>
在每次使用数据库的时候,都需要加载一次数据库:
<span>$this</span>->load->database();
为了方便,可以将数据库的加载设置成自动加载,在\application\config\autoload.php中。
<span>$autoload</span>['libraries'] = <span>array</span>('database');
对于数据库访问对象,装载到超级对象的属性中 $this->db
<span>$res</span> = <span>$this</span>->db->query(<span>$sql</span>);<span>//</span><span>返回对象</span> <span>$res</span>->result();<span>//</span><span>返回数组,数组中是一个一个的对象</span> <span>$res</span>->result_array();<span>//</span><span>返回二维数组,里面是关联数组</span> <span>$res</span>->row();<span>//</span><span>返回第一条数据,直接是一个对象</span>
AR操作数据库
在database.php文件中,将$active_recoed的值改为TRUE,这样就可以使用AR了。
<span>//</span><span>查询</span> <span>public</span> <span>function</span><span> index() { </span><span>$res</span> = <span>$this</span>->db->get('表名');<span>//</span><span>这里自动调用前缀</span> <span>foreach</span>(<span>$res</span>->result() <span>as</span> <span>$item</span><span>) { </span><span>echo</span> <span>$item</span>->name."<br />"<span>; } }</span>
<span>//</span><span>插入</span> <span>public</span> <span>function</span><span> index() { </span><span>$data</span>=<span>array</span><span>( </span>'name'=>'lisi', 'password'=><span>md5</span>('lisi'<span>) ); </span><span>$bool</span> = <span>$this</span>->db->insert("表名",<span>$data</span><span>); </span><span>var_dump</span>(<span>$bool</span><span>); }</span>
<span>//</span><span>更新</span> <span>public</span> <span>function</span><span> index() { </span><span>$data</span>=<span>array</span><span>( </span>'name'=>'wangwu', 'password'=><span>md5</span>('wangwu'<span>) ); </span><span>$bool</span> = <span>$this</span>->db->update('表名',<span>$data</span>,<span>array</span>('id'=>3<span>)); </span><span>var_dump</span>(<span>$bool</span><span>); }</span>
<span>//</span><span>删除</span> <span>$bool</span> = <span>$this</span>->db->delete('表名',<span>array</span>('id'=>2<span>)); </span><span>var_dump</span>(<span>$bool</span>);
常规的方法是ul嵌套,即主菜单ul-li里嵌套子菜单ul,要用到两级循环
首先循环主菜单,要有固定的条件来判断出主菜单,比如主菜单的uid==0或者其它。。。
- 栏目名称</li>
if($news_item['uid'] == 0){ //判断并得到主菜单
echo " - ".$news_item['title'] . '
- ';
- "."ss".$child_item['title']."</li>";
}
endforeach;
echo "</ul></li>";
}
endforeach; ?>
</ul>
当然这仅限于两级菜单,多级或无限极,可以使用函数递归
function menu($uid=0){ //设置缺省从主菜单开始
global $news;
foreach ($news as $news_item):
if($news_item['uid'] == $uid){
echo " - ".$news_item['title'] . '
- ';
menu($news_item['id']); //递归调用
echo "</ul></li>";
}
endforeach;
}
------ 调用方法 ------------------------------- >
MY_Controller のクラス名は同じである必要はありませんか?
foreach ($news as $child_item): //循环二次
if($news_item['id'] == $child_item['uid']){ //判断并得到对应子菜单
echo " - "."ss".$child_item['title']."</li>";

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java フレームワークの商用サポートのコスト/パフォーマンスを評価するには、次の手順が必要です。 必要な保証レベルとサービス レベル アグリーメント (SLA) 保証を決定します。研究サポートチームの経験と専門知識。アップグレード、トラブルシューティング、パフォーマンスの最適化などの追加サービスを検討してください。ビジネス サポートのコストと、リスクの軽減と効率の向上を比較検討します。

PHP フレームワークの学習曲線は、言語熟練度、フレームワークの複雑さ、ドキュメントの品質、コミュニティのサポートによって異なります。 PHP フレームワークの学習曲線は、Python フレームワークと比較すると高く、Ruby フレームワークと比較すると低くなります。 Java フレームワークと比較すると、PHP フレームワークの学習曲線は中程度ですが、開始までの時間は短くなります。

軽量の PHP フレームワークは、サイズが小さくリソース消費が少ないため、アプリケーションのパフォーマンスが向上します。その特徴には、小型、高速起動、低メモリ使用量、改善された応答速度とスループット、および削減されたリソース消費が含まれます。 実際のケース: SlimFramework は、わずか 500 KB、高い応答性と高スループットの REST API を作成します。

明確で包括的なドキュメントを作成することは、Golang フレームワークにとって非常に重要です。ベスト プラクティスには、Google の Go コーディング スタイル ガイドなど、確立されたドキュメント スタイルに従うことが含まれます。見出し、小見出し、リストなどの明確な組織構造を使用し、ナビゲーションを提供します。スタート ガイド、API リファレンス、概念など、包括的で正確な情報を提供します。コード例を使用して、概念と使用法を説明します。ドキュメントを常に最新の状態に保ち、変更を追跡し、新機能を文書化します。 GitHub の問題やフォーラムなどのサポートとコミュニティ リソースを提供します。 API ドキュメントなどの実践的なサンプルを作成します。

アプリケーションのシナリオに基づいて最適な Go フレームワークを選択します。アプリケーションの種類、言語機能、パフォーマンス要件、エコシステムを考慮します。一般的な Go フレームワーク: Jin (Web アプリケーション)、Echo (Web サービス)、Fiber (高スループット)、gorm (ORM)、fasthttp (速度)。実際のケース: REST API (Fiber) の構築とデータベース (gorm) との対話。フレームワークを選択します。主要なパフォーマンスには fasthttp、柔軟な Web アプリケーションには Jin/Echo、データベース インタラクションには gorm を選択してください。

Go フレームワークの学習には、フレームワークへの過度の依存と柔軟性の制限という 5 つの誤解があります。フレームワークの規則に従わない場合、コードの保守が困難になります。古いライブラリを使用すると、セキュリティと互換性の問題が発生する可能性があります。パッケージを過度に使用すると、コード構造が難読化されます。エラー処理を無視すると、予期しない動作やクラッシュが発生します。

iPhone にアプリが読み込まれていませんか?アプリの読み込みに時間がかかるのは正常ではありません。まだベータ版のアプリを除き、iPhone で開くとすぐに読み込まれるはずです。一部の重いゲームを除いて、携帯電話上のすべてのアプリの読み込みが遅い、またはまったく読み込まれない場合は、以下の手順に従って問題を修正する必要があります。解決策 1 – アプリを更新する (該当する場合) しばらくアプリを更新していませんか?最新バージョンに更新すると、問題が解決されるはずです。ステップ 1 – AppStore を開きます。ステップ 2 – 検索ボックスにアプリの名前を入力し、候補から直接アプリを開きます。ステップ 3 – クリックしてスペシャルに移動します

Go フレームワーク開発における一般的な課題とその解決策は次のとおりです。 エラー処理: 管理にはエラー パッケージを使用し、エラーを一元的に処理するにはミドルウェアを使用します。認証と認可: サードパーティのライブラリを統合し、資格情報を確認するためのカスタム ミドルウェアを作成します。同時処理: ゴルーチン、ミューテックス、チャネルを使用してリソース アクセスを制御します。単体テスト: 分離のために getest パッケージ、モック、スタブを使用し、十分性を確保するためにコード カバレッジ ツールを使用します。デプロイメントとモニタリング: Docker コンテナを使用してデプロイメントをパッケージ化し、データのバックアップをセットアップし、ログ記録およびモニタリング ツールでパフォーマンスとエラーを追跡します。
