整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          thinkphp3.2之URL簡化設置

          thinkphp3.2之URL簡化設置

          篇文章主要是寫thinkphp3.2設置簡化URL,寫法簡單適合新手學習。以備須要之時可以查看!

          隱藏index.php入口文件

          index.php的同級目錄中創建.htaccess文件

          <IfModule mod_rewrite.c>

          RewriteEngine on

          RewriteCond %{REQUEST_FILENAME} !-d

          RewriteCond %{REQUEST_FILENAME} !-f

          RewriteRule ^(.*)$ index.php/ [QSA,PT,L]

          </IfModule>

          config.php里面設置 'URL_MODEL'=> 2

          隱藏模塊名稱

          index.php入口文件里面設置 define('BIND_MODULE', 'Home'); 這里是去除home模塊

          隱藏控制器名稱

          這里的話需要開啟路由跟配置路由。具體的還是要看代碼里的URL如何去寫

          config.php里面設置(這里以首頁為例子)

          'URL_ROUTER_ON'=> TRUE, //開啟路由

          //定義路由規則

          'URL_ROUTE_RULES'=> array(

          'index'=>'Index/index'

          ),

          接下來在視圖里面修改URL。

          沒改之前的寫法:

          設置之后的寫法:

          結果

          悟空CRM是一款永久開源免費的CRM管理系統,悟空CRM-基于JAVA/TP5.0+vue+ElementUI的前后端分離CRM系統 ,悟空CRM是基于JAVA/PHP多語言的B/S架構的管理軟件,為企業提供行業專屬的crm客戶管理方案。 悟空CRM,CRM,免費CRM,開源HRMS,開源OA,移動辦公,辦公軟件,手機辦公,企業辦公,5KCRM,PHP開源CRM,免費開源CRM系統,好用免費,開源crm,CRM系統,CRM軟件,免費CRM軟件,下載開源CRM,免費客戶關系管理系統,中小企業首選必知,適合中小企業,教育行業CRM軟件,教育行業解決方案,醫療行業CRM軟件,醫療行業解決方案,工單系統,呼叫中心系統,呼叫中心解決方案,微信企業號.

          開源地址:https://gitee.com/wukongcrm/72crm

          悟空軟件長期為企業提供企業管理軟件(CRM/HRM/OA/ERP等)的研發、實施、營銷、咨詢、培訓、服務于一體的信息化服務。悟空軟件以高科技為起點,以技術為核心、以完善的售后服務為后盾,秉承穩固與發展、求實與創新的精神,已為國內外上千家企業提供服務。

          悟空的發展受益于開源,也會回饋于開源。2019年,悟空CRM會繼續秉承“擁抱開放、合作共贏、創造價值”的理念,在開源的道路上繼續砥礪前行,和更多的社區開發者一起為國內外開源做出積極貢獻。

          PHP前后端分離CRM系統

          悟空CRM采用全新的前后端分離模式,本倉庫代碼中已集成前端vue打包后文件,可免去打包操作

          如需調整前端代碼,請單獨下載前端代碼,前端代碼在根目錄的ux文件夾中

          主要技術棧

          后端框架:ThinkPHP 5.0.2

          前端MVVM框架:Vue.JS 2.5.x

          路由:Vue-Router 3.x

          數據交互:Axios

          UI框架:Element-UI 2.6.3

          悟空crm9.0的運行環境要求PHP5.6以上

          一鍵安裝

          代碼中已集成前端vue打包后文件,可免去打包操作: 以本地(phpstudy集成環境)搭建舉例: 下載悟空CRM9.0開源版,在服務器根目錄(www目錄)下創建72crm文件夾,并放置代碼; 瀏覽器訪問

          http://localhost/72crm/index.php/admin/install/index.html

          根據安裝提示步驟,完成悟空CRM9.0 的部署安裝

          開發依賴(需個性化安裝或調整前端代碼請按照以下教程,一鍵安裝用戶可忽略)

          數據交互

          數據交互通過axios以及RESTful架構來實現 用戶校驗通過登錄返回的auth_key放在header 值得注意的一點是:跨域的情況下,會有預請求OPTION的情況

          Server搭建

          服務端使用的框架為thinkphp5.0.2,搭建前請確保擁有lamp/lnmp/wamp環境。

          這里所說的搭建其實就是把server框架放入WEB運行環境,并使用80端口。 導入服務端根文件夾數據庫文件public/sql/5kcrm.sql,并修改config/database.php配置文件。

          配置要求

          PHP >=5.6.0 (暫不支持PHP7及以上版本) 當訪問 http://localhost/, 出現“悟空軟件”即代表后端接口搭建成功。

          前端部署

          安裝node.js 前端部分是基于node.js上運行的,所以必須先安裝node.js,版本要求為6.0以上

          使用npm安裝依賴 下載悟空CRM9.0前端代碼; 可將代碼放置在后端同級目錄frontend,執行命令安裝依賴:

          npm install
          

          修改內部配置 修改請求地址或域名:config/dev.env.js里修改BASE_API(開發環境服務端地址,默認localhost) 修改自定義端口:config/index.js里面的dev對象的port參數(默認8080,不建議修改)

          運行前端

           npm run dev
          

          注意:前端服務啟動,默認會占用8080端口,所以在啟動前端服務之前,請確認8080端口沒有被占用。 程序運行之前需搭建好Server端

          JAVA前后端分離CRM系統

          悟空CRM采用全新的前后端分離模式,本倉庫代碼中已集成前端vue打包后文件,可免去打包操作

          如需調整前端代碼,請單獨下載前端代碼,前端代碼在根目錄的ux文件夾中

          主要技術棧

          核心框架:jfinal3.8

          緩存:redis caffeine

          數據庫連接池:Druid

          工具類:hutool,fastjson,poi-ooxml

          定時任務:jfinal-cron

          項目構建工具:maven

          Web容器:tomcat,undertow(默認)

          前端MVVM框架:Vue.JS 2.5.x

          路由:Vue-Router 3.x

          數據交互:Axios

          UI框架:Element-UI 2.6.3

          安裝說明

          1、配置java運行環境,redis環境,mysql環境。

          2、將目錄doc下的crm9.sql導入到數據庫( 初始化安裝只需要導入crm9.sql就好了,更新代碼導入對應日期的sql文件)。

          3、修改resources/config/crm9-config.txt下的數據庫配置文件。 4、修改resources/config/redis.json下的redis連接文件 5、undertow啟動端口號在resources/config/undertow.txt下修改。

          默認賬號 admin 默認密碼 123456

          部署說明

          本項目JDK要求JDK8及以上

          一、Undertow(默認)

          <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-undertow</artifactId> <version>1.6</version> </dependency>
          

          取消以上代碼的注釋,將tomcat的pom依賴javax.servlet.javax.servlet-api注釋掉,打包方式改為jar 運行maven package,打包完成后

          將上述打包命令生成的 crm9-release.zip 文件上傳到服務器并解壓,運行對應的72crm.sh/72crm.bat即可

          二、Tomcat部署

          <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
          

          取消以上代碼的注釋,將undertow的pom依賴com.jfinal.jfinal-undertow注釋掉,并將com.kakarote.crm9.Application的main方法注釋掉,打包方式改為war,

          運行maven package命令,將war包放在tomcat/webapps目錄下

          項目默認是ROOT.war,若需要攜帶項目名,需要修改 ux/config/prod.env.js的BASE_API為'"/項目名/"',改動完成后需要重新打包替換到webapp下

          項目webapp下自帶打包后的前端代碼,如果不需要對前端代碼更改,直接訪問即可

          如果更改了前端代碼,需要將打包后的dist下static文件夾和index.html替換到webapp下

          ps:可以使用nginx代理靜態文件,后臺只做接口響應,項目本身設計是前后端完全分離的

          前端部署

          安裝node.js 前端部分是基于node.js上運行的,所以必須先安裝node.js,版本要求為6.0以上

          使用npm安裝依賴 下載悟空CRM9.0前端代碼; 可將代碼放置在后端同級目錄ux,執行命令安裝依賴:

          npm install
          

          修改內部配置 修改請求地址或域名:config/dev.env.js里修改BASE_API(開發環境服務端地址,默認localhost) 修改自定義端口:config/index.js里面的dev對象的port參數(默認8090,不建議修改)

          運行前端

           npm run dev
          

          注意:前端服務啟動,默認會占用8090端口,所以在啟動前端服務之前,請確認8090端口沒有被占用。 程序運行之前需搭建好Server端

          hinkPHP 5.0的安裝


          方式一:官網下載

          • 官網地址:http://thinkphp.cn

          方式二:git安裝

          • 應用項目:https://github.com/top-think/think

          • 核心框架:https://github.com/top-think/framework

          • 首先Clone項目倉庫:

            git clone https://github.com/top-think/think project_name

          • 然后再切換到項目文件夾(/project_name),安裝核心框架

            git clone https://github.com/top-think/framework thinkphp

          • 后續需要更新框架時,只要切換到thinkphp文件夾并執行

            git pull https://github.com/top-think/framework

          運行ThinkPHP項目

          • 在本地環境運行ThinkPHP項目有兩種方式:

          • 在計算機上搭建Apache服務器,將項目文件夾放到Apache中運行

          • 在安裝php環境的機器上執行路由命令,自建服務器環境

          • 在此使用第一種方法,第二中方法占不討論。

          • 在瀏覽器上訪問入口文件,訪問項目:

            http://localhost/project_name/public/index.php

          配置數據庫

          • 項目文件夾下有很多子文件夾,其中application文件夾存放的就是我們的業務代碼,所以在入門的時候幾乎只涉及到這個文件夾的內容。https://github.com/top-think/framework

          • 在開始制作項目前我們先配置數據庫,用編輯器打開 database.php,修改數據庫名稱、用戶名和密碼就可以了。

          'hostname'=> 'localhost',
          'database'=> 'test',
          'username'=> 'root',
          'password'=> '123456',

          了解目錄的結構

          • application文件夾的目錄結構是這樣的

          + index //Index模塊
           + controller //控制器
           + model //模型
           + view //視圖
           - .htaccess
           - command.php //命令行工具配置
           - common.php //應用公共函數
           - config.php //應用公共配置
           - database.php //數據庫配置
           - route.php //路由配置
           - tags.php //應用行為擴展定義
          • Index是系統為我們已經創建好的默認模塊,我們還能為應用創建不同的模塊,比如說后臺Admin模塊。

          • 從模塊文件夾的結構我們明顯地看出一個MVC的架構,而接下來我們要做的就是創建第一個控制器,模型和視圖。

          創建第一個控制器

          • 打開controller文件夾我們可以發現系統已經為我們創建了Index控制器,這也是我們為什么在項目創建完成后就可以通過瀏覽器訪問的原因,在這里,我們創建一個新的控制器——Test控制器,我們在controller文件夾新建一個test.php文件。

          • test.php 代碼如下

          namespace app\index\controller;class Test { 
           public function index(){ 
           return 'Hello World!';
           }
          }
          • namespace為這段代碼劃定了命名空間,避免了模塊間和類庫間的命名沖突。

          • index()是Test控制器的一個方法,當我們在通過URL訪問時沒有指定訪問控制器的哪一個方法,就會默認訪問index方法。

          • 當然也可以為控制器添加初始化方法 _initialize(),它會在控制器調用方法時前被調用。

          • 控制器一般不需要任何輸出,直接return數據就可以了。

          • 現在我們訪問

            http://localhost/project_name/public/index.php/Index/Test/index

            可以發現頁面上輸出了 Hello World!

          • 這里你應該就發現了URL的規律了,在index.php后面加上/模塊名/控制器名/方法名就可以調用相應的方法了。

          創建第一個視圖

          在服務器上展示一個網頁

          • 在傳統的PHP中,我們很容易就習慣把html和標簽和php語句混到一起。而在MVC結構中,我們要把展現在瀏覽器上的部分和業務邏輯隔離開來,使得項目的可維護性更高。

          • ThinkPHP 5.0沒有為我們建立視圖文件夾,我們在index模塊文件夾下建立一個view文件夾,然后在view文件夾下建立一個與控制器同名的Test文件夾,當控制器Test需要調用模板時,會在/index/view/Test中尋找。

          • 這里我們在Test下創建一個index.html文件:

          <!DOCTYPE html><html lang="zh-CN"><head>
           <meta charset="UTF-8">
           <title>Document</title></head><body>
           <h1>Hello World!</h1></body></html>
          • 然后我們修改控制器的代碼,引入think\View命名空間,并創建一個View的實例。

          namespace app\index\controller;use think\View;class Test { 
           public function index(){
           $view=new View(); 
           return $view->fetch('index');
           }
          }
          • View類中的fetch方法會找到此模塊中view文件夾下同名的Test文件夾,并根據參數找到index.html文件,將它渲染出來,這時訪問

            http://localhost/project_name/public/index.php/Index/Test/index

            可以看到網頁已經顯示出來了。

          • 當然,如果方法和模板同名的話,就可以省略掉這個參數了,所以在這里

            return $view->fetch('index');


            可以寫成

            return $view->fetch();

          將變量輸出到模板

          • 我們需要把控制器中處理后的數據輸出到模板上,這時只要把變量綁定到$view對象成為它的屬性,就可以在模板中用花括號中將它輸出了。
            /index/controller/Test.php

          <?phpnamespace app\index\controller;use think\View;class Test { 
           public function index(){
           $view=new View();
           $view->name='I love ThinkPHP';
           return $view->fetch();
           }
          }

          /index/view/Test/index.html

          <!DOCTYPE html><html lang="en"><head>
           <meta charset="UTF-8">
           <title>Document</title></head><body>
           <h1>{$name}</h1></body></html>
          • 刷新頁面,即可看到效果。

          • 在視圖中,可以用點運算符(.)來訪問數組的元素。
            /index/controller/Test.php

          <?phpnamespace app\index\controller;use think\View;class Test {
           public function index(){
           $view=new View();
           $view->person=array("name"=>"Tom","age"=>"23"); return $view->fetch();
           }
          
          }

          /index/view/Test/index.html

          <!DOCTYPE html><html lang="en"><head>
           <meta charset="UTF-8">
           <title>Document</title></head><body>
           <h1>{$person.name}</h1>
           <h1>{$person.age}</h1></body></html>
          • 當然也可以使用

            {$person["name"]}

            {$person["age"]}

          訪問數據庫

          • 在之前,我們已經配置好了數據庫,假定我們現在有一張student表(id為主鍵)
            | id | name | age |
            | -- | ----- | --- |
            | 1 | Tom | 23 |
            | 2 | Alice | 22 |

          • 現在,在index文件夾下創建model文件夾,創建Student.php文件

          <?php
          namespace app\index\Model;
          
          use think\Model;class Student extends Model{
           protected $table="student";
          }

          這里注意Student模型類要繼承think\Model類,我們可以事先通過

          use think\Model;

          來引入這個類。在Student類中,我們需要定義 $table 屬性告訴 ThinkPHP 這個模型匹配的是 student 表。在這里你也許會想到要為 Student 類定義 id, name, age 這些屬性,不過在這里并不需要,等你調用這個模型的時候,ThinkPHP 會根據數據表的字段為 Student 的實例來添加這些屬性。
          • 接下來,我們只要在控制器中引入Student類,就可以訪問數據了。

          <?phpnamespace app\index\controller;use app\index\model\Student;use think\View;class Test {
           public function index(){
           $view=new View(); 
           $student=Student::get(1);
           $view->student=$student;
           return $view->fetch();
           }
          }
          • 首先別忘了引入Student類

            use app\index\model\Student;


            在 index 方法中,我們通過 Student::get(1) 靜態獲取了 Student表中主鍵為1的數據,并將它綁定在視圖上,我們嘗試在視圖輸出 student 的數據。

          <!DOCTYPE html><html lang="en"><head>
           <meta charset="UTF-8">
           <title>Document</title></head><body>
           <h1>{$student.name}</h1>
           <h1>{$student.age}</h1></body></html>
          • 大功告成,除了這種靜態調用的方式,還可以動態建立Student實例,這樣就可以進行更加豐富的查詢操作,這里就不詳細撰述了,有興趣的同學可以去翻看ThinkPHP 5.0文檔中關于模型和數據庫的部分。

          成為一名ThinkPHP開發者

          • 在這里,你已經創建了一個ThinkPHP應用,建立了第一個控制器,通過關聯模型訪問了數據庫的數據,并將它們輸出到HTML模板上。你已經完成了開發ThinkPHP的第一步,當然,這些知識對于你而言還是遠遠不夠的,接下來你需要通過更多的資料來熟悉這個框架,并通過不斷地翻看文檔,來了解ThinkPHP的各種方法和強大特性,最后附上ThinkPHP 5.0的文檔地址,加油啦。

          • http://www.kancloud.cn/manual/thinkphp5


          主站蜘蛛池模板: 国产精品自在拍一区二区不卡| 国产一区二区在线视频| 91精品乱码一区二区三区| 国产成人无码精品一区二区三区 | 插我一区二区在线观看| 国产一区二区三区夜色| 一区二区中文字幕| 日本高清一区二区三区| 夜夜爽一区二区三区精品| 国产一区二区三区樱花动漫| 亚洲国产精品成人一区| 国产乱人伦精品一区二区| 久久亚洲中文字幕精品一区| 日本一区二区三区免费高清 | 另类ts人妖一区二区三区| 免费观看日本污污ww网站一区| 日本免费电影一区| 中日韩一区二区三区| 亚洲AV无码一区二区三区系列| 麻豆精品久久久一区二区| 91精品福利一区二区三区野战| 久久中文字幕无码一区二区| 一区视频在线播放| 日本激情一区二区三区| 国产精品成人国产乱一区| 国产伦精品一区二区三区女| 能在线观看的一区二区三区| 人妻无码一区二区三区免费| 成人h动漫精品一区二区无码| 黄桃AV无码免费一区二区三区| 亚洲AV日韩综合一区尤物| 国产A∨国片精品一区二区| 高清精品一区二区三区一区| 一区二区三区内射美女毛片| 国产福利一区二区三区视频在线| 深夜福利一区二区| 国产精品第一区揄拍| 国产激情з∠视频一区二区 | 一区二区国产精品| 一本一道波多野结衣AV一区| 99久久精品费精品国产一区二区|