比较大的项目 要不要把url都统一到一个表里面?大家都是怎么做的?
<code>是这样的,最近项目越来越大 包括 手机端 微信嵌入网站 支付宝服务窗嵌入网站 PC端(下面有很多二级域名 比如 passport api service) 等等 我在考虑 是不是要把整站的url 路径 都写入到一个表里面 然后用统一的一个函数 来调用url 否则的话 比如说 http:xxx/article 这个详细页面 url 站内各个模块都有关联 如果这个url更改了 那么代码里面 很多关于这个页面的 url 定向 都要修改 我在考虑是不是 把所有的url (包括 后台和前台) 都集中到一个表 里面 管理 然后每个url 对应有 权限 别名 rewrite 等等属性 这样 调用的时候 比如说这个 geturl("article") 根据article这个别名 来调用 url 不管url怎么改变 还是 做了 rewrite 都不用改代码了 不知道各位大神是怎么做的呢? </code>
回复内容:
<code>是这样的,最近项目越来越大 包括 手机端 微信嵌入网站 支付宝服务窗嵌入网站 PC端(下面有很多二级域名 比如 passport api service) 等等 我在考虑 是不是要把整站的url 路径 都写入到一个表里面 然后用统一的一个函数 来调用url 否则的话 比如说 http:xxx/article 这个详细页面 url 站内各个模块都有关联 如果这个url更改了 那么代码里面 很多关于这个页面的 url 定向 都要修改 我在考虑是不是 把所有的url (包括 后台和前台) 都集中到一个表 里面 管理 然后每个url 对应有 权限 别名 rewrite 等等属性 这样 调用的时候 比如说这个 geturl("article") 根据article这个别名 来调用 url 不管url怎么改变 还是 做了 rewrite 都不用改代码了 不知道各位大神是怎么做的呢? </code>
这个可以有,最好是将mysql的url缓存到memcache或redis,不然每个请求到去查表的话,性能就不好了。
可以这样做,点评很长一段时间就是如此的。
现在因为有了SLB,软负载均衡,所以配置变的复杂了,基本都在SLB层面上做掉了。
另外这样的好处还有就是方便AB Test等同URL的应用切换。
不过有几点要注意:
1、URL匹配规则的顺序,有时会出现先前的规则覆盖后面的规则,那么URL路由就到不到后面规则的解析器。
2、URL匹配的性能,灵活利用多种匹配规则,例如starts_with, ends_with,等以及正则的写法对性能的影响。
3、楼上提到放到memcached或redis里,其实因为URL规则的访问密集性以及整体不会太大,反而是建议就放在本地内存中。
php的我不知道,不过我知道别的语言里,大多路由都需要手动注册,然后通过模版里的helper用路由名称来渲染路径,如django的urlfor

ホット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)

ホットトピック











PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。
