⑴ 做個php輪子,開發自己的PHP框架需要哪些能
1.
嘗試試用一個以上的框架,看完一遍使用文檔,目的在於了解它都有哪些功能,發現他的一些比較好的用法設計;
2.
在看文檔的同時並行的思考這一部分的實現原理,如果想不明白則如姿記下來或者上Github去看源碼(當然在不熟悉代碼結構的情況下可能很難找,所以我建議還是先記下來);
3.
看它的項目結渣行絕構,同時思考這個結構的意義,比如現在大部分框架都把入口文件與靜態資源單獨放到public目錄里與其它目錄分開的原因是什麼;
4.
嘗試看一遍源碼的運行流程,從入口到輸出,以及錯誤處理,模板引擎,配置等多個點了解一下(如果基礎允許的話,在這過程中解決上面記下來的疑點吧);
5. 開始自己實現吧,先寫一個大概的功能列表,把你要實帶襪現的點寫出來;
6. 然後思考如果組織代碼結構,在沒有太多實踐經驗的情況下就按你最熟悉的方式組織吧(先實現再優化);
7. 先跑通基本的hello world!;
8. 一點點加功能吧;
9. 發現不足,改進它;
⑵ 求個ThinkPHP的詳細樹狀結構圖 流程圖,該怎麼解決
1、在「繪圖」工具欄上,單擊「插入組織結構圖或其他圖示」。
2、在接著出現的「圖示庫」中選擇「用於顯示層次關系」的第一種後,單擊「確定」按鈕後會出現一個層次結構圖。
3、做一個名為「計算機系統」的結構圖,先在第一個框中輸入「計算機系統」,因為計算機系統是由軟體和硬體兩部分組成的,「計算機」下面只有兩個「下屬」,所以要刪除其中的一個文本框,選中其中任意一個文本框,按「Del」刪除,然後再在其下面插入相應數量的文本框並輸入內容,Word會根據組織結構圖的大小自動調整整體大小。
4、不滿足於默認的效果,可以在「組織結構圖」工具欄上選擇「自動套用格式」,其中給出了除「默認」外的16種效果,一定可以滿足要求。
⑶ 現在大型php程序目錄結構一般怎麼安排
PHP之所以能在web開發語言中排名靠前,不僅僅是因為語法簡單,上手容易。我個人認為更多是因為其語言本身的:模塊的易擴展性,可維護性以及內存安全管理等特點。寫過PHP的程序員不一定都知道:PHP是如何執行的?其組織結構目錄的作用?如果對其有所了解,對PHP的認識會更深入,寫出的代碼也會更高效,更健壯......
1. build 和編譯有關的目錄。
2. ext 擴展庫代碼,例如 mysql、zlib、iconv 等我們熟悉的擴展庫。其中/ext/standard/ 目錄下是常用的標准函數集。
3. main 主目錄包含主要的 PHP 宏和定義。
4. sapi 和各種伺服器的介面調用,例如apache、IIS等,也包含一般的fastcgi、cgi等。
5. win32 和 Windows 下編譯 PHP 有關的腳本。
6. Zend 文件夾核心的引擎,所有的 Zend API 定義與宏等。
7. scripts Linux 下的腳本目錄。
8. tests 測試腳本目錄
9. sapi 各類 Web 伺服器的介面。
10.TSRM Zend 和 PHP 的 「線程安全資源管理器」 (TSRM) 目錄。
11.pear 這個目錄就是「PHP 擴展與應用倉庫」的目錄。包含了PEAR 的核心文件。
其中幾個重要的文件絕對值得你共時間去了解:
php-src/main/php.h, 位於PHP 主目錄。這個文件包含了絕大部分 PHP 宏及 API 定義。
php-src/Zend/zend.h, 位於 Zend 主目錄。這個文件包含了絕大部分 Zend 宏及 API 定義。
php-src/Zend/zend_API.h, 也位於 Zend 主目錄,包含了Zend API 的定義
⑷ PHP項目案例分析的目錄
第I篇 實用項目篇
第1章 圖書信息管理系統(PHP+MySQL實現)
自學視頻、源程序:
配套資源mr1 2
1.1 項目設計思路 3
1.1.1 功能闡述 3
1.1.2 系統預覽 3
1.1.3 功能結構 4
1.1.4 文件組織結構 4
1.2 資料庫設計 5
1.2.1 資料庫設計結構 5
1.2.2 數據表設計結構 5
1.2.3 連接資料庫 6
1.3 首頁設計 6
1.3.1 首頁頁面概述 6
1.3.2 獲取超鏈接傳遞的數據 7
1.3.3 首頁頁面實現過程 8
1.4 注冊模塊設計 12
1.4.1 注冊模塊概述 12
1.4.2 注冊模塊實現過程 12
1.5 登錄模塊設計 14
1.5.1 登錄模塊概述 14
1.5.2 登錄模塊實現過程 15
1.6 圖書信息添加模塊設計 16
1.6.1 圖書信息添加模塊概述 16
1.6.2 在下拉菜單中顯示數據表
某列的欄位值 17
1.6.3 圖書信息添加模塊實現過程 18
1.7 圖書信息管理模塊設計 20
1.7.1 圖書信息管理模塊概述 20
1.7.2 分頁技術 21
1.7.3 圖書信息管理模塊實現過程 22
1.8 圖書搜索模塊設計 27
1.8.1 圖書搜索模塊概述 27
1.8.2 通過JavaScript腳本創建級
聯下拉列表框 27
1.8.3 圖書搜索模塊實現過程 28
1.9 項目發布 31
本章小結 31
第2章 會議管理系統(PHP+
ADODB+Access實現)
自學視頻、源程序:
配套資源mr2 32
2.1 項目設計思路 33
2.1.1 功能闡述 33
2.1.2 系統預覽 33
2.1.3 功能結構 34
2.1.4 文件組織結構 34
2.2 資料庫設計 35
2.2.1 資料庫設計結構 35
2.2.2 數據表設計結構 35
2.2.3 連接資料庫 36
2.3 登錄模塊設計 36
2.3.1 登錄模塊概述 36
2.3.2 用戶許可權判斷技術 37
2.3.3 用戶登錄模塊實現過程 37
2.4 首頁設計 39
2.4.1 首頁概述 39
2.4.2 首頁設計技術 39
2.4.3 首頁實現過程 40
2.5 用戶個人信息模塊設計 42
2.5.1 用戶個人信息模塊概述 42
2.5.2 用戶個人信息模塊技術 43
2.5.3 用戶個人信息模塊實現過程 43
2.5.4 安全退出 44
2.6 會議記錄添加模塊 45
2.6.1 會議記錄添加模塊概述 45
2.6.2 會議記錄信息驗證技術 45
2.6.3 上傳文件處理技術 46
2.6.4 會議記錄添加模塊實現過程 48
2.7 瀏覽會議記錄模塊設計 50
2.7.1 瀏覽會議記錄模塊概述 50
2.7.2 WebBrowser列印技術 50
2.7.3 Excel報表生成技術 51
2.7.4 文本文件中數據的獲取技術 52
2.7.5 瀏覽會議記錄實現過程 52
2.7.6 會議記錄詳細信息瀏覽
實現過程 53
2.8 查找會議記錄模塊設計 55
2.8.1 查找會議記錄模塊概述 55
2.8.2 分類查找技術 55
2.8.3 查找會議記錄實現過程 56
2.9 ADODB連接資料庫技術專題 57
2.9.1 ADODB簡介 58
2.9.2 ADODB的安裝 58
2.9.3 ADODB常用函數及說明 58
2.9.4 不同資料庫之間的轉換 60
2.10 項目發布 61
本章小結 61
第3章 夢幻網路日記(Apache+PHP+
MySQL實現)
自學視頻、源程序:
配套資源mr3 62
3.1 項目設計思路 63
3.1.1 功能闡述 63
3.1.2 系統預覽 63
3.1.3 功能結構 64
3.1.4 文件組織結構 64
3.2 資料庫設計 65
3.2.1 資料庫設計結構 65
3.2.2 數據表設計結構 65
3.2.3 連接資料庫 67
3.3 用戶模塊設計 68
3.3.1 用戶模塊概述 68
3.3.2 注冊模塊實現過程 68
3.3.3 登錄模塊實現過程 70
3.3.4 密碼找回實現過程 72
3.4 首頁設計 73
3.4.1 首頁概述 73
3.4.2 通過switch和include語句
設計框架 74
3.4.3 二級導航菜單實現過程 76
3.5 網頁鬧鍾模塊設計 78
3.5.1 網頁鬧鍾模塊概述 78
3.5.2 鬧鍾鈴聲試聽 79
3.5.3 Ajax無刷新控制鬧鈴 80
3.5.4 網頁鬧鍾設定的實現過程 83
3.6 理財助手模塊設計 85
3.6.1 理財助手模塊設計概述 85
3.6.2 驗證日期格式是否正確 86
3.6.3 日期選擇器 89
3.6.4 無邊框窗口 90
3.6.5 添加收入實現過程 91
3.6.6 財務管理實現過程 94
3.6.7 財務查詢實現過程 97
3.6.8 財務統計實現過程 100
3.7 我的日記模塊設計 102
3.7.1 我的日記模塊設計概述 102
3.7.2 過濾敏感詞 103
3.7.3 當前頁完成驗證碼的驗證 104
3.7.4 查詢關鍵字描紅 107
3.7.5 添加日記的實現過程 108
3.7.6 分頁顯示日記列表 110
3.7.7 彈出窗口修改日記 112
3.7.8 查詢日記的實現過程 113
3.7.9 應用JavaScript實現批量
刪除 116
3.8 管理日記本 118
3.8.1 管理日記本概述 118
3.8.2 MD5加密技術 118
3.8.3 修改密碼的實現過程 119
3.9 項目發布 119
本章小結 120
第4章 企業網站系統(PHP+MySQL
實現)
自學視頻、源程序:
配套資源mr4 121
4.1 項目設計思路 122
4.1.1 功能闡述 122
4.1.2 系統預覽 122
4.1.3 功能結構 124
4.1.4 文件組織結構 124
4.2 資料庫設計 125
4.2.1 資料庫設計結構 125
4.2.2 數據表設計結構 126
4.2.3 連接資料庫 127
4.3 首頁設計 128
4.3.1 首頁頁面概述 128
4.3.2 在網頁中嵌入flash動畫 128
4.3.3 首頁頁面實現過程 129
4.4 最新活動模塊設計 133
4.4.1 最新活動模塊概述 133
4.4.2 使用<marquee>標簽實現
文字滾動效果 133
4.4.3 最新活動標題滾動顯示
實現過程 134
4.4.4 查看活動詳細信息實現過程 135
4.5 產品中心模塊設計 136
4.5.1 產品中心模塊概述 136
4.5.2 do…while循環輸出查詢
結果 137
4.5.3 <img>標簽輸出產品效果圖 138
4.5.4 顯示軟體產品實現過程 138
4.5.5 查看產品詳細信息實現過程 140
4.5.6 查看更多產品信息實現過程 140
4.6 客戶反饋模塊設計 142
4.6.1 客戶反饋模塊概述 142
4.6.2 數字驗證碼 143
4.6.3 留言信息分頁瀏覽 143
4.6.4 查看留言詳細信息 144
4.6.5 添加留言信息 145
4.7 後台主頁設計 146
4.7.1 後台主頁概述 146
4.7.2 後台主頁框架設計原理 147
4.7.3 後台主頁實現過程 148
4.8 軟體產品管理模塊設計 149
4.8.1 軟體產品管理模塊概述 149
4.8.2 文件上傳技術擴展 149
4.8.3 添加軟體信息實現過程 150
4.8.4 修改軟體信息實現過程 152
4.8.5 刪除軟體信息實現過程 154
4.8.6 查詢軟體信息實現過程 155
4.9 項目發布 156
本章小結 157
第5章 明日網上書店(PHP+Smarty+
ADODB+MySQL實現)
自學視頻、源程序:
配套資源mr5 158
5.1 功能設計思路 159
5.1.1 功能闡述 159
5.1.2 系統預覽 160
5.1.3 功能結構 161
5.1.4 文件組織結構 162
5.2 資料庫設計 163
5.2.1 資料庫設計結構 163
5.2.2 數據表設計結構 163
5.3 公共類設計 165
5.3.1 資料庫連接類 166
5.3.2 資料庫管理類 168
5.3.3 Smarty模板引擎配置類 169
5.3.4 購物車類 169
5.3.5 分頁類 172
5.3.6 工具類 173
5.4 首頁設計 176
5.4.1 首頁概述 176
5.4.2 首頁技術分析 177
5.4.3 首頁實現過程 178
5.5 用戶模塊設計 179
5.5.1 用戶模塊概述 179
5.5.2 用戶注冊 179
5.5.3 用戶登錄 184
5.5.4 用戶中心 185
5.5.5 找回登錄密碼 188
5.6 圖書展示模塊設計 190
5.6.1 圖書分類展示 190
5.6.2 特別圖書展示 194
5.6.3 圖書試讀展示 196
5.6.4 圖書詳細信息展示 199
5.7 圖書訂購模塊設計 203
5.7.1 購物車的實現 203
5.7.2 填寫收貨人信息 206
5.7.3 確認訂購信息 207
5.7.4 選擇支付方式 209
5.7.5 確認支付信息 209
5.8 後台登錄頁設計 212
5.8.1 後台登錄頁概述 212
5.8.2 後台登錄頁實現過程 212
5.9 系統管理模塊 214
5.9.1 系統信息設置 214
5.9.2 更改管理員密碼 215
5.10 圖書類別管理模塊 216
5.10.1 圖書大類管理 216
5.10.2 圖書小類管理 218
5.10.3 出版社分類管理 220
5.11 圖書管理模塊 223
5.11.1 圖書信息管理 223
5.11.2 圖書試讀管理 227
5.12 用戶信息管理模塊 229
5.12.1 用戶信息管理 229
5.12.2 用戶反饋信息管理 230
5.13 訂單信息管理模塊 231
5.13.1 訂單信息列表管理 231
5.13.2 訂單詳細信息管理 232
5.14 項目發布 233
5.15 用戶使用手冊 236
本章小結 239
第6章 辦公自動化系統 (PHP+Smarty
+MS SQL Server 2000+
PDO實現)
自學視頻、源程序:
配套資源mr6 240
6.1 功能設計思路 241
6.1.1 功能闡述 241
6.1.2 系統預覽 241
6.1.3 功能結構 242
6.1.4 文件夾組織結構 243
6.2 資料庫設計 244
6.2.1 資料庫設計結構 244
6.2.2 數據表設計結構 244
6.2.3 連接資料庫 246
6.3 公共模塊設計 247
6.3.1 Smarty類庫的封裝 247
6.3.2 類的實例化 248
6.3.3 JavaScript腳本 248
6.3.4 自定義函數 249
6.4 前台首頁設計 250
6.4.1 前台首頁概述 250
6.4.2 前台首頁框架技術 251
6.4.3 前台首頁的實現過程 253
6.4.4 定義頂部框架內顯示的頁面 253
6.4.5 定義左側框架內顯示的頁面 255
6.4.6 定義中間主框架顯示的頁面 256
6.5 人事消息模塊設計 257
6.5.1 人事消息模塊概述 257
6.5.2 $_GET[]和$_POST[]全局
數組 257
6.5.3 消息管理的實現過程 258
6.6 考勤管理模塊設計 262
6.6.1 考勤管理模塊概述 263
6.6.2 Smarty模板中if語句嵌套
技術 263
6.6.3 上下班登記的實現過程 264
6.6.4 設置時間的實現過程 269
6.7 後台主頁設計 271
6.7.1 後台主頁概述 271
6.7.2 後台主頁框架技術 271
6.7.3 後台登錄實現過程 272
6.7.4 後台主頁實現過程 273
6.8 部門管理模塊設計 275
6.8.1 部門管理模塊概述 275
6.8.2 部門功能結構的動態輸出
技術 276
6.8.3 部門查看的實現過程 278
6.8.4 部門添加的實現過程 281
6.9 系統管理模塊設計 283
6.9.1 系統管理模塊概述 283
6.9.2 通過文件存儲數據技術 283
6.9.3 系統日誌的實現過程 284
6.10 許可權管理模塊設計 286
6.10.1 許可權管理模塊概述 286
6.10.2 使用JavaScript關聯多選
列表框 286
6.10.3 賬號許可權 288
6.10.4 用戶組設置 289
6.10.5 許可權分配 293
6.11 項目發布 296
6.11.1 配置程序運行環境 296
6.11.2 配置MS SQL Server 2000
資料庫 296
本章小結 298
第II篇 畢業設計篇
第7章 圖書館管理系統(PHP+MySQL 5.0實現)
自學視頻、源程序:
配套資源mr7 300
7.1 設計說明 301
7.1.1 畢業設計(論文)主要內容 301
7.1.2 畢業設計(論文)要求 301
7.2 填寫開題報告 302
7.3 封面設計 303
7.4 書寫摘要 304
7.5 編排目錄 305
7.6 緒論 307
7.6.1 本課題的開發背景及意義 307
7.6.2 課題研究內容 307
7.6.3 設計組織結構 307
7.7 開發工具及相關技術 308
7.7.1 常用開發工具 308
7.7.2 運行環境 309
7.7.3 相關技術 312
7.7.4 B/S結構簡介 313
7.8 需求分析 314
7.8.1 可行性分析 314
7.8.2 系統需求 315
7.8.3 功能需求 315
7.8.4 性能要求 316
7.9 系統資料庫設計 316
7.9.1 資料庫概述 316
7.9.2 系統實體E-R圖 317
7.9.3 系統數據表設計 319
7.10 系統設計 320
7.10.1 系統實現關系圖 320
7.10.2 系統功能模塊設計 321
7.11 系統功能實現 321
7.11.1 管理員模塊設計 321
7.11.2 圖書檔案管理模塊設計 324
7.11.3 圖書借還模塊設計 326
7.12 結論 328
7.13 參考文獻 329
7.14 致謝 329
7.15 附錄 329
7.15.1 附錄A 主程序(Index.php
代碼) 329
7.15.2 附錄B 子程序(Book
Borrow.php代碼) 332
本章小結 335
第8章 電子商務網站(PHP+MySQL 5.0
實現)
自學視頻、源程序:
配套資源mr8 336
8.1 設計說明 337
8.1.1 畢業設計(論文)主要內容 337
8.1.2 畢業設計(論文)要求 337
8.2 填寫開題報告 338
8.3 封面設計 339
8.4 書寫摘要 340
8.5 編排目錄 341
8.6 緒論 343
8.6.1 本課題的開發背景及意義 343
8.6.2 課題研究內容 343
8.6.3 設計組織結構 343
8.7 開發工具及相關技術 344
8.7.1 開發工具 344
8.7.2 運行環境 345
8.7.3 相關技術 346
8.7.4 B/S系統結構 347
8.8 需求分析 348
8.8.1 必要性與可行性分析 349
8.8.2 系統需求 349
8.8.3 功能需求 350
8.8.4 系統性能要求 350
8.9 系統資料庫設計 350
8.9.1 資料庫理論基礎 351
8.9.2 系統實體E-R圖 351
8.9.3 系統數據表設計 352
8.10 系統設計 354
8.10.1 系統實現結構圖 354
8.10.2 系統功能模塊設計 355
8.11 系統功能實現 356
8.11.1 商品展示模塊設計 356
8.11.2 購物車模塊設計 358
8.11.3 搜索模塊設計 359
8.11.4 訂單管理模塊設計 360
8.11.5 商品管理模塊設計 362
8.12 結論 363
8.13 參考文獻 364
8.14 致謝 364
8.15 附錄 365
8.15.1 附錄A 主程序(Index.php
代碼) 365
8.15.2 附錄B 子程序(gouwu1.php
代碼) 368
本章小結 370
附錄A 372
附錄B 409
⑸ PHP是什麼,有什麼作用,它的裡麵包括些什麼內容MYSQL是什麼
PHP是一種用於創建動態WEB頁面的服務端腳本語言。如同ASP和ColdFusion,用戶可以混合使用PHP和HTML編寫WEB頁面,當訪問者瀏覽到該頁面時,服務端會首先對頁面中的PHP命令進行處理,然後把處理後的結果連同HTML內容一起傳送到訪問端的瀏覽器。但是與ASP或ColdFusion不同,PHP是一種源代碼開放程序,擁有很好的跨平台兼容性。用戶可以在Windows NT系統以及許多版本的Unix系統上運行PHP,而且可以將PHP作為Apache伺服器的內置模塊或CGI程序運行。
除了能夠精確的控制WEB頁面的顯示內容之外,用戶還可以通過使用PHP發送HTTP報頭。用戶可以通過PHP設置cookies,管理用戶身份識別,並對用戶瀏覽頁面進行重定向。PHP具有非常強大的資料庫支持功能,能夠訪問幾乎目前所有較為流行的資料庫系統。此外,PHP可以與多個外接庫集成,為用戶提供更多的實用功能,如生成PDF文件等。
用戶可以直接在WEB頁面中輸入PHP命令代碼,因而不需要任何特殊的開發環境。在WEB頁面中,所有PHP代碼都被放置在「< ?php」和「 ? >」中。此外,用戶還可以選擇使用諸如< SCRIPT LANGUAGE="php" >< /SCRIPT >等的形式。PHP引擎會自動識別並處理頁面中所有位於PHP定界符之間的代碼。
PHP腳本語言的語法結構與C語言和Perl語言的語法風格非常相似。用戶在使用變數前不需要對變數進行聲明。使用PHP創建數組的過程也非常簡單。PHP還具有基本的面向對象組件功能,可以極大的方便用戶有效組織和封裝自己編寫的代碼。
MySQL是一個真正多用戶、多線程的SQL資料庫伺服器. SQL 是世界上最普及的資料庫語言. MySQL是客戶/服務端機制,即包括一個後端的伺服器和許多不同的客戶程序和庫. MySQL資料庫是眾多的關系型資料庫產品中的一個,相比較其它系統而言,MySQL資料庫可以稱得上是目前運行速度最快的SQL語言資料庫。除了具有許多其它資料庫所不具備的功能和選擇之外,MySQL資料庫是一種完全免費的產品,用戶可以直接從網上下載資料庫,用於個人或商業用途,而不必支付任何費用。
⑹ PHP是什麼
PHP是PHP的遞歸首字母縮寫:Hypertext Preprocessor,一種用於創建動態和互動式HTML網頁的腳本語言。當網站訪問者打開頁面時,伺服器處理PHP命令,然後將結果發送到訪問者的瀏覽器。
主要特點
①開源性和免費性
由於PHP的解釋器的源代碼是公開的,所以安全系數較高的網站可以自己更改PHP的解釋程序。另外,PHP運行環境的使用也是免費的。
②快捷性
PHP是一種非常容易學習和使用的一門語言,它的語法特點類似於C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規則,使得它操作編輯非常簡單,實用性很強。
③資料庫連接的廣泛性
PHP可以與很多主流的資料庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數與這些資料庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。
④面向過程和面向對象並用
在PHP語言的使用中,可以分別使用面向過程和面向對象,而且可以將PHP面向過程和面向對象兩者一起混用,這是其它很多編程語言是做不到的。
(6)php組織結構擴展閱讀
PHP優點
①流行,容易上手
PHP是目前最流行的編程語言,這毋庸置疑。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在伺服器端採用PHP。PHP常用的數據結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。
②開發職位很多
在伺服器端的網站編程中PHP會更容易幫助你找到工作。很多互聯網相關企業都在使用PHP開發框架,所以可以說市場對PHP的開發程序員的需求還是比較大的。
③仍然在不斷發展
PHP在不斷兼容著類似closures和命名空間等技術,同時兼顧性能和當下流行的框架。版本是7之後,一直在提供更高性能的應用。
④可植入性強
PHP語言在補丁漏洞升級過程中,核心部分植入簡單易行,且速度快。
⑤拓展性強
PHP語言在資料庫應用過程中,可以從資料庫調取各類數據,執行效率高
⑺ 求php項目開發文檔
PHP項目開發全程實錄
1.2 系統分析
1.2.1 需求分析
對於信息網站來說,用戶的訪問量是至關重要的。如果網站的訪問量很低,那麼就很少有企業會要求為他提供有償服務,也就沒有利潤可言了。因此信息網站必須為用戶提供大量的、免費的、有價值的信息才能夠吸引用戶。為此,網站不僅要為企業提供各種有償服務,還需要額外為用戶提供大量的無償服務。通過與企業的實際接觸和溝通,確定網站應包括招聘信息、求職信息、培訓信息、公寓信息、家教信息、車輛信息、物品求購、物品出售、求兌出兌,尋求合作、企業廣告等服務。
通過實際調查,要求供求信息網具有以下功能:
�0�6 界面設計美觀大方、方便、快捷、操作靈活,樹立企業形象。
�0�6 實現強大的供求信息查詢,支持模糊查詢。
�0�6 用戶不需要注冊,便可免費發布供求信息。
�0�6 免費發布的供求信息必須經後台審核後才能正式發布,避免不良信息。
�0�6 支持海量數據錄入。
�0�6 由於供求信息數據量大,後台應該可以隨時清理數據。
1.2.2 可行性分析
根據《GB8567-88計算機軟體產品開發文件編制指南》中可行性分析的要求,制定可行性研究報告如下:
1.引言
(1)編寫目的
為了給企業的決策層提供是否進行項目實施的參考依據,現以文件的形式分析項目的風險、項目需要的投資與效益。
(2)背景
×××信息科技有限公司是一家以整合渠道資源為主的高科技公司。企業為了不斷滿足客戶的需求,為達到企業在同行業領域中的領先地位,現需要委託其他公司開發一個綜合信息網,項目名稱為九九度供求信息網。
2.可行性研究的前提
(1)要求
九九度供求信息網要求能夠提供信息搜索、信息定位描紅、發布免費信息、發布付費信息、發布企業廣告、對各類發布的信息進行審核、刪除、檢索等功能。
(2)目標
九九度供求信息網的主要目標是提供強大的搜索功能,准確的信息描紅定位功能,付費信息的管理、免費信息的審核和刪除功能。
(3)條件、假定和限制
項目需要在兩個月內交付用戶使用。系統分析師需要3天內到位,用戶需要4天時間確認需求分析文檔。去除員工兩個月的正常休息日16天,那麼程序開發人員需要在1個月零幾天的時間內進行系統設計、程序編碼、系統測試、程序調試和網站部署工作。
(4)評價尺度
根據用戶的要求,系統應以搜索引擎為主,對於發布的供求信息應能及時准確地保存、審核、查詢、描紅定位。由於用戶存在多個營業點,系統應具有區域網操作的能力,在多個營業點同時運行系統時,系統中各項操作的延時不能超過10秒鍾。此外,在系統出現故障時,應能及時進行恢復。
3.投資及效益分析
(1)支出
根據系統的規模及兩個月的項目開發周期,公司決定投入5個人。因此,公司將直接支付8萬元的工資及各種福利待遇。在項目安裝及調試階段,用戶培訓、員工出差等費用支出需要2萬元。在項目維護階段預計需要投入2萬元的資金,累計項目投入需要12萬元資金。
(2)收益
用戶提供項目資金30萬元。對於項目運行後進行的改動,採取協商的原則根據改動規模額外提供資金。因此從投資與收益的效益比上,公司可以獲得18萬元的利潤。
項目完成後,將給公司提供資源儲備,包括技術、經驗的積累,以後再開發類似的項目時,可以極大地縮短項目開發周期。
4.結論
根據上面的分析,技術上不會存在問題,因此項目延期的可能性很小。在效益上,公司投入5個人、兩個月的時間獲利18萬元,比較可觀。在公司今後的發展上可以儲備網站開發的經驗和資源,因此認為該項目可以開發。
1.2.3 編寫項目計劃書
根據《GB8567-88計算機軟體產品開發文件編制指南》中的項目開發計劃要求,結合單位實際情況,設計項目計劃書如下:
1.引言
(1)編寫目的
為了保證項目開發人員按時保質地完成預訂目標,更好地了解項目實際情況,按照合理的順序開展工作,現以書面的形式將項目開發生命周期中的項目任務范圍、項目團隊組織結構、團隊成員的工作責任、團隊內外溝通協作方式、開發進度、檢查項目工作等內容描述出來,作為項目相關人員之間的共識和約定以及項目生命周期內的所有項目活動的行動基礎。
(2)背景
九九度供求信息網是本公司與×××信息科技有限公司簽定的待開發項目,網站性質為信息服務類型,可為信息發布者有償或無償提供招聘、求職、培訓、求購、公寓、車輛、房屋和出售等信息。項目周期為兩個月,項目背景規劃如表1.1所示。
表1.1 項目背景規劃
項 目 名 稱
簽定項目單位
項目負責人
項目承擔部門
九九度供求信息網
甲方:×××信息科技有限公司
甲方:趙經理
設計部門
開發部門
測試部門
乙方:×××網路科技有限公司
乙方:張經理
2.概述
(1)項目目標
項目目標應當符合SMART原則,把項目要完成的工作用清晰的語言描述出來。九九度供求信息網的項目目標如下:
九九度供求信息網主要用來為用戶提供信息服務,對於生活和工作中的各類信息都應盡可能地全部包括在內,例如公寓、求職、招聘、培訓、招商、房屋、車輛、出售、求購等信息。項目發布後,要實現能夠為用戶生活、工作帶來極大的方便並提高企業知名度、為企業產品宣傳節約大量成本的目標。整個項目需要在兩個月的期限結束後,交給客戶進行驗收。
(2)產品目標與范圍
一方面九九度供求信息網能夠為企業節省大量人力資源,企業不再需要大量的業務人員去跑市場,間接為企業節約了成本。另一方面,九九度供求信息網能夠收集海量供求信息,將會有大量用戶訪問網站,有助於提高企業知名度。
(3)應交付成果
項目開發完成後,交付的內容如下:
�0�6 以光碟的形式交付九九度供求信息網的源程序、網站資料庫文件、系統使用說明書。
�0�6 客戶方應用自己的伺服器,因此需要乙方架設Apache伺服器、安裝PHP開發環境、協助甲方購買域名,將開發的九九度供求信息網發布到互聯網上運行。
�0�6 網站發布到互聯網上以後,進行後期的6個月無償維護與服務,超過6個月後進行網站有償維護與服務。
(4)項目驗收方式與依據
項目驗收分為內部驗收和外部驗收兩種方式。在項目開發完成後,首先進行內部驗收,由系統測試員根據用戶需求和項目目標進行驗收。項目在通過內部驗收後交給用戶進行驗收,驗收的主要依據為需求規格說明書。
3.項目團隊組織
(1)組織結構
為了完成九九度供求信息網的項目開發,公司組建了一個臨時的項目團隊,由項目經理、系統分析師、PHP開發工程師、網頁設計師和系統測試員構成
⑻ PHP到底有多糟糕
php是web開發第一語言,這已經是坐穩了的事實,因為使用簡單,工具完善,開發效率高等優點為它積聚了大量的粉絲,號稱世界上最好的語言。 然而,就算是世界上最好的語言也有缺陷,下面我挑幾個php語法層面不那麼好用的特性吐槽下。
變數面前的美元($)符號
我想不明白當初php語言的設計師是怎麼想的,為什麼非要在變數名面前加上這個美元符號?每次我書寫變數時必須要按一下shift +4鍵,用其它語言可以很流暢的寫代碼,在php中卻老是被按這個shift打斷整個過程,這除了能給程序員帶來麻煩,我實在看不到有其它一丁點的好處。網上流傳著的說法好像是因為帶美元符號代碼解析起來更容易, 性能更好。但是解釋類型的語言又不只有php ,為什麼其它語言就不用讓程序員打這個討厭的美元符號。每天看著滿屏的美元符號,我口袋裡的錢也沒見多一分呀。
訪問對象成員要使用箭頭符號
明明按一下點號(.)就可以方便快捷的搞定的問題,卻非要使用簡單符號(->)來代替,真的是借我一百個腦袋也想不明白php設計者在設計這個特性是什麼邏輯。難不成是因為php解釋器最終會把php的代碼轉換成c代碼執行,而c中訪問指針的成員就是使用箭頭符號的。如果是這樣那顯然是php的設計者們偷懶了,難到不能在轉換成c執行的過程中多一步將點號轉換為箭頭符號的過程嗎?不要告訴我又是因為性能問題而辦不到,他們就不能為程序員想想?
數組即能當列表也能當字典
寫一個函數,返回一個數組類型,但是在函數的外面,鬼知道這個數組是一個list還是一個map?寫php代碼不知道被這個特性坑過多少回,如果是別人寫的函數, 又沒有注釋,那非得跑進函數里看個明白才知道應該這么樣使用這個函數才是安全的。難到就不能把array拆成兩個獨立的類型分別代表list(列表)和map(字典)嗎?這能為程序提供很大的便利,寫的代碼也更加不會出錯。
匿名函數使用外部變數必須使用use關鍵字導入
這個特性不能說完全沒有優點,對於代碼的可維護性還是能起到正面的作用的,因為這么做能讓我知道我在匿名函數體裡面對於外部會有哪些依賴,讓代碼更可控。然而,這種寫法真的是非常的不方便,每次寫lambda時,要用到外部的變數時,都要使用use導入,把代碼搞的看起來很臃腫,而且,因為其它語言沒這個限制,習慣已經養成,所以每次都會忘記使用use導入,導致代碼出錯,增加排查問題的時間,這真的不是什麼好玩的事。
用include導入文件
當把代碼模塊化時,然後在其它文件中使用,每次都需要使用這個include把文件導入進來,而且還要考慮路徑的問題,在結構復雜的項目中,非常讓人蛋疼。而像Java和Python之類的語言中,代碼管理機制設計的非常好,想用什麼import進來就可以了,根本不用考慮路徑啊,文件名大小寫啊之類的問題,能大大的提升開發效率。雖然,有框架可以解決這類問題,但畢竟是外部實現,使用起來總歸不是那麼順暢。這也算是php一個比較大的毛病了。
總結的這五點算是php中存在問題的典範了,希望php團隊能加把勁,把這些問題在未來的版本中優化掉,讓開發者寫代碼時有更好的體驗,更高的效率,讓世界上最好的語言名副其實
⑼ php除了mvc還有什麼架構
MVC
MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型(M)、視圖(V)、控制器(C),它們各自處理自己的任務。
OOP
面向對象編程(Object Oriented Programming,OOP,面向對象程序設計)是一種計算機編程架構。OOP 的一條基本原則是,計算機程序是由單個能夠起到子程序作用的單元或對象組合而成。OOP 達到了軟體工程的三個主要目標:重用性、靈活性和擴展性。為了實現整體運算,每個對象都能夠接收信息、處理數據和向其它對象發送信息。OOP 主要有以下的概念和組件:
組件 - 數據和功能一起在運行著的計算機程序中形成的單元,組件在 OOP 計算機程序中是模塊和結構化的基礎。
抽象性 - 程序有能力忽略正在處理中信息的某些方面,即對信息主要方面關注的能力。
封裝 - 也叫做信息封裝:確保組件不會以不可預期的方式改變其它組件的內部狀態;只有在那些提供了內部狀態改變方法的組件中,才可以訪問其內部狀態。每類組件都提供了一個與其它組件聯系的介面,並規定了其它組件進行調用的方法。
多態性 - 組件的引用和類集會涉及到其它許多不同類型的組件,而且引用組件所產生的結果得依據實際調用的類型。
繼承性 - 允許在現存的組件基礎上創建子類組件,這統一並增強了多態性和封裝性。典型地來說就是用類來對組件進行分組,而且還可以定義新類為現存的類的擴展,這樣就可以將類組織成樹形或網狀結構,這體現了動作的通用性。
由於抽象性、封裝性、重用性以及便於使用等方面的原因,以組件為基礎的編程在腳本語言中已經變得特別流行。
ORM
對象-關系映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象的軟體開發方法發展而產生的。面向對象的開發方法是當今企業級應用開發環境中的主流開發方法,關系資料庫是企業級應用環境中永久存放數據的主流數據存儲系統。對象和關系數據是業務實體的兩種表現形式,業務實體在內存中表現為對象,在資料庫中表現為關系數據。內存中的對象之間存在關聯和繼承關系,而在資料庫中,關系數據無法直接表達多對多關聯和繼承關系。因此,對象-關系映射(ORM)系統一般以中間件的形式存在,主要實現程序對象到關系資料庫數據的映射。
面向對象是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關系資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,對象關系映射技術應運而生。
⑽ 在PHP裡面有沒有類似JAVA中的多層架構
1、系統的技術架構比較
分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中非常重要的思想。在好的分層思想引導下,便能實現「高內聚、低耦合」,也能將具體的問題 割裂開來,易於控制、易於延展,更易於分配資源。PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網路架構。運用MVC的設計模式,可使電子商務軟體具有更加高效、合理的系統架構。技術架構的落後,使運用PHP編寫的電子商務軟體先天不足,而後天又無法補足其先天上的劣勢。使得系統在可拓展性、需求應變性上與JAVA編寫的電子商務軟體系統的差距越來越大。架構的差距,註定了PHP做的電子商務充其量是個小家碧玉,始終無法和JAVA這種大家閨秀同台競技。
2、資料庫訪問比較
PHP可編譯成具有與許多資料庫相連接的函數。將自己編寫外圍的函數去間接存取資料庫。通過這樣的途徑當更換使用的資料庫時,可以輕松地修改編碼以適應這樣的變化。但PHP提供的資料庫介面支持彼此不統一,比如對Oracle,MySQL,SQL2000的介面,彼此都不一樣。由於PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強。
3、安全性對比
在JAVA的面前,PHP丟掉了很多的優勢。在代碼的安全性上尤為突出。PHP的開發程序在別人拿到代碼後,可以很容易的進行修改。而JAVA開發的程序由於無法看到完整的源代碼,只能看到一些編譯好的類文件.class,所以安全性較高。加之系統架構的優勢,在安全性上PHP和JAVA是相去甚遠。如果非要將PHP和JAVA在安全性上做個比較的話,同一個小偷光顧PHP那是隨便拿來隨便改,想拿什麼拿什麼,拿的高興還能大筆一輝某某到此一游。而光顧JAVA的時候,便會發現警察把守,內設自動報警裝置,即便突破重重阻擾後進入居室。那值錢的東西都放在加密後的保險櫃中,只能望洋興嘆、鎩羽而歸。