作者: undplayer 時間: 2015-12-9 13:39 標題: zend, codeigniter, laravel, symfony 你地會選那一個?
提示: 作者被禁止或刪除 內容自動屏蔽
作者: hihihi123hk 時間: 2015-12-9 16:36
本帖最後由 hihihi123hk 於 2015-12-9 16:48 編輯
回覆 1# undplayer
打工 、公司 Project 一定係員工 Skill set 行先
如果自己有得揀,個人覺得寫 Strong type 一定會學得開心啲同埋學得快啲 (因為 IDE 無論係 Read Sample project / Write own code 都幫到好多忙)
作者: 044003 時間: 2015-12-9 16:39
本帖最後由 044003 於 2015-12-9 16:41 編輯
/_\有冇d容易d學既framework
全部都係mvc
作者: carlkyo 時間: 2015-12-9 22:07
本帖最後由 carlkyo 於 2015-12-9 22:11 編輯
寫個crud既class去處理所有tables
再加DT都幾好
- class Database{
- /*
- * Create variables for credentials to MySQL database
- * The variables have been declared as private. This
- * means that they will only be available with the
- * Database class
- */
- private $db_host = "localhost"; // Change as required
- private $db_user = "user"; // Change as required
- private $db_pass = "password"; // Change as required
- private $db_name = "database"; // Change as required
-
- /*
- * Extra variables that are required by other function such as boolean con variable
- */
- private $con = false; // Check to see if the connection is active
- private $result = array(); // Any results from a query will be stored here
- private $myQuery = "";// used for debugging process with SQL return
- private $numResults = "";// used for returning the number of rows
-
- // Function to make connection to database
- public function connect(){
- if(!$this->con){
- $myconn = @mysql_connect($this->db_host,$this->db_user,$this->db_pass); // mysql_connect() with variables defined at the start of Database class
- if($myconn){
- $seldb = @mysql_select_db($this->db_name,$myconn); // Credentials have been pass through mysql_connect() now select the database
- if($seldb){
- $this->con = true;
- return true; // Connection has been made return TRUE
- }else{
- array_push($this->result,mysql_error());
- return false; // Problem selecting database return FALSE
- }
- }else{
- array_push($this->result,mysql_error());
- return false; // Problem connecting return FALSE
- }
- }else{
- return true; // Connection has already been made return TRUE
- }
- }
-
- // Function to disconnect from the database
- public function disconnect(){
- // If there is a connection to the database
- if($this->con){
- // We have found a connection, try to close it
- if(@mysql_close()){
- // We have successfully closed the connection, set the connection variable to false
- $this->con = false;
- // Return true tjat we have closed the connection
- return true;
- }else{
- // We could not close the connection, return false
- return false;
- }
- }
- }
-
- public function sql($sql){
- $query = @mysql_query($sql);
- $this->myQuery = $sql; // Pass back the SQL
- if($query){
- // If the query returns >= 1 assign the number of rows to numResults
- $this->numResults = mysql_num_rows($query);
- // Loop through the query results by the number of rows returned
- for($i = 0; $i < $this->numResults; $i++){
- $r = mysql_fetch_array($query);
- $key = array_keys($r);
- for($x = 0; $x < count($key); $x++){
- // Sanitizes keys so only alphavalues are allowed
- if(!is_int($key[$x])){
- if(mysql_num_rows($query) >= 1){
- $this->result[$i][$key[$x]] = $r[$key[$x]];
- }else{
- $this->result = null;
- }
- }
- }
- }
- return true; // Query was successful
- }else{
- array_push($this->result,mysql_error());
- return false; // No rows where returned
- }
- }
-
- // Function to SELECT from the database
- public function select($table, $rows = '*', $join = null, $where = null, $order = null, $limit = null){
- // Create query from the variables passed to the function
- $q = 'SELECT '.$rows.' FROM '.$table;
- if($join != null){
- $q .= ' JOIN '.$join;
- }
- if($where != null){
- $q .= ' WHERE '.$where;
- }
- if($order != null){
- $q .= ' ORDER BY '.$order;
- }
- if($limit != null){
- $q .= ' LIMIT '.$limit;
- }
- $this->myQuery = $q; // Pass back the SQL
- // Check to see if the table exists
- if($this->tableExists($table)){
- // The table exists, run the query
- $query = @mysql_query($q);
- if($query){
- // If the query returns >= 1 assign the number of rows to numResults
- $this->numResults = mysql_num_rows($query);
- // Loop through the query results by the number of rows returned
- for($i = 0; $i < $this->numResults; $i++){
- $r = mysql_fetch_array($query);
- $key = array_keys($r);
- for($x = 0; $x < count($key); $x++){
- // Sanitizes keys so only alphavalues are allowed
- if(!is_int($key[$x])){
- if(mysql_num_rows($query) >= 1){
- $this->result[$i][$key[$x]] = $r[$key[$x]];
- }else{
- $this->result = null;
- }
- }
- }
- }
- return true; // Query was successful
- }else{
- array_push($this->result,mysql_error());
- return false; // No rows where returned
- }
- }else{
- return false; // Table does not exist
- }
- }
-
- // Function to insert into the database
- public function insert($table,$params=array()){
- // Check to see if the table exists
- if($this->tableExists($table)){
- $sql='INSERT INTO `'.$table.'` (`'.implode('`, `',array_keys($params)).'`) VALUES ("' . implode('", "', $params) . '")';
- $this->myQuery = $sql; // Pass back the SQL
- // Make the query to insert to the database
- if($ins = @mysql_query($sql)){
- array_push($this->result,mysql_insert_id());
- return true; // The data has been inserted
- }else{
- array_push($this->result,mysql_error());
- return false; // The data has not been inserted
- }
- }else{
- return false; // Table does not exist
- }
- }
-
- //Function to delete table or row(s) from database
- public function delete($table,$where = null){
- // Check to see if table exists
- if($this->tableExists($table)){
- // The table exists check to see if we are deleting rows or table
- if($where == null){
- $delete = 'DROP TABLE '.$table; // Create query to delete table
- }else{
- $delete = 'DELETE FROM '.$table.' WHERE '.$where; // Create query to delete rows
- }
- // Submit query to database
- if($del = @mysql_query($delete)){
- array_push($this->result,mysql_affected_rows());
- $this->myQuery = $delete; // Pass back the SQL
- return true; // The query exectued correctly
- }else{
- array_push($this->result,mysql_error());
- return false; // The query did not execute correctly
- }
- }else{
- return false; // The table does not exist
- }
- }
-
- // Function to update row in database
- public function update($table,$params=array(),$where){
- // Check to see if table exists
- if($this->tableExists($table)){
- // Create Array to hold all the columns to update
- $args=array();
- foreach($params as $field=>$value){
- // Seperate each column out with it's corresponding value
- $args[]=$field.'="'.$value.'"';
- }
- // Create the query
- $sql='UPDATE '.$table.' SET '.implode(',',$args).' WHERE '.$where;
- // Make query to database
- $this->myQuery = $sql; // Pass back the SQL
- if($query = @mysql_query($sql)){
- array_push($this->result,mysql_affected_rows());
- return true; // Update has been successful
- }else{
- array_push($this->result,mysql_error());
- return false; // Update has not been successful
- }
- }else{
- return false; // The table does not exist
- }
- }
-
- // Private function to check if table exists for use with queries
- private function tableExists($table){
- $tablesInDb = @mysql_query('SHOW TABLES FROM '.$this->db_name.' LIKE "'.$table.'"');
- if($tablesInDb){
- if(mysql_num_rows($tablesInDb)==1){
- return true; // The table exists
- }else{
- array_push($this->result,$table." does not exist in this database");
- return false; // The table does not exist
- }
- }
- }
-
- // Public function to return the data to the user
- public function getResult(){
- $val = $this->result;
- $this->result = array();
- return $val;
- }
- //Pass the SQL back for debugging
- public function getSql(){
- $val = $this->myQuery;
- $this->myQuery = array();
- return $val;
- }
- //Pass the number of rows back
- public function numRows(){
- $val = $this->numResults;
- $this->numResults = array();
- return $val;
- }
- // Escape your string
- public function escapeString($data){
- return mysql_real_escape_string($data);
- }
- }
作者: 7h1r733n 時間: 2015-12-9 22:40
如果剩係做crud..做乜唔scaffold....
作者: 7h1r733n 時間: 2015-12-9 22:43
MVC其實係多餘.. 懶係好... 其實就慢到hihi... 特別係有ORM果D(大多數).. 低能到爆.. ~_~"
當然可以為左(好似係)良好design/structure 而放棄performance... 唔夠快就加多兩部機. ^_^
作者: 7h1r733n 時間: 2015-12-9 22:44
呢幾隻都用過... laravel係比較好..
作者: gamezz 時間: 2015-12-9 22:49
codeigniter 比較簡單,行得快
作者: 顏佬 時間: 2015-12-9 22:58
提示: 作者被禁止或刪除 內容自動屏蔽
作者: DarkHero 時間: 2015-12-9 23:28
有見識下無用mv**的framework 係點樣
作者: DarkHero 時間: 2015-12-9 23:30
MVC其實係多餘.. 懶係好... 其實就慢到hihi... 特別係有ORM果D(大多數).. 低能到爆.. ~_~"
當然可以為左( ...
7h1r733n 發表於 2015-12-9 22:43
加一部機要幾多錢?
加多一個manday 又要幾多錢?
作者: 7h1r733n 時間: 2015-12-9 23:35
本帖最後由 7h1r733n 於 2015-12-9 23:38 編輯
加一部似樣o既機... 唔好彩可以十幾廿萬.. sparc的話.
1 man day我就計3500... 但實際人工其實可能只係千鬆d...
好難比較...
當然你可以話加一部"窮人文書機", 2000有找.. 咁你win囉.
作者: DarkHero 時間: 2015-12-9 23:59
十幾廿萬 同 2k 個d desktop run 一句普通sql select 效能會相差幾多?
作者: 3ldk 時間: 2015-12-10 00:16
咁scaffold你又會用乜做?
作者: 7h1r733n 時間: 2015-12-10 07:05
本帖最後由 7h1r733n 於 2015-12-10 09:28 編輯
睇吓句sql係乜.... 如果2k desktop唔夠ram的話效能可以差唔止10倍....
不過有時有d野唔係加ram就可以解決到
作者: hihihi123hk 時間: 2015-12-10 10:18
ORM 之中最伏一定係
n+1 query
同埋
default Select *
不過當 Parent result row < 100 .. 再行 n query 拎Child
而家用 SSD 都唔會好覺,但 Datasize >500 會好明顯覺得慢得離譜
作者: KinChungE 時間: 2015-12-10 10:42
留意一部desktop未必真係2k搞得掂
部機就2k, 但係多左機, maintenance成本都高左
仲要諗下會唔會有license要買
一陣原來要買多個Oracle DB License就
作者: student_abc 時間: 2015-12-10 11:02
MVC其實係多餘.. 懶係好... 其實就慢到hihi... 特別係有ORM果D(大多數).. 低能到爆.. ~_~"
當然可以為左( ...
7h1r733n 發表於 2015-12-9 22:43
Do you like zend? It runs ORM
作者: 7h1r733n 時間: 2015-12-10 11:33
ZF係我最唔鐘意o既php framework
作者: student_abc 時間: 2015-12-10 11:42
Which framework do you like in PHP?
WHy?

作者: 7h1r733n 時間: 2015-12-10 11:52
用咩framwork其實好個人....... 我自己鐘意用自家野... 不過講講其他....
如果唔計開外掛o既Phalcon....
要performance的話我會選Slim... (我自己果套同slim差唔多.. 不過再lightweight d..)
一般汎用的話CI或者Laravel... CI會易學d o既..... Cake都有用過.. 不過就..... 不如理想..
最垃圾就ZF... 慢.. 大舊.. 包左一堆垃圾你唔會用o既.......
作者: student_abc 時間: 2015-12-10 11:56
用咩framwork其實好個人....... 我自己鐘意用自家野... 不過講講其他....
如果唔計開外掛o既Phalcon....
...
7h1r733n 發表於 2015-12-10 11:52
How about CI?

作者: 7h1r733n 時間: 2015-12-10 12:00
回覆 22# student_abc
CI易學o既... 但呢... 有時有D tricky野要注意.... 有時又會有d古怪bug.... 咁囉...
作者: 梁炳 時間: 2015-12-10 16:05
行得快唔快,應該係你最後一個考慮
先睇下邊個最make sense to you
易學又有彈性做到最common既野
我就建議Laravel, 4比較易學,不過5新加既practice都係幾好
CI都唔錯,我一開始係學CI, 後來一上Laravel4就無再回頭了
作者: carlkyo 時間: 2015-12-10 16:50
本帖最後由 carlkyo 於 2015-12-10 21:07 編輯
學緊
作者: 7h1r733n 時間: 2015-12-10 18:38
回覆 24# 梁炳
所以上面我都有分汎用定係performance critical..
點design 都好, 如果得果100幾十人用, 寫得再爛都唔會有事
作者: DarkHero 時間: 2015-12-10 20:24
用咩framwork其實好個人....... 我自己鐘意用自家野... 不過講講其他....
如果唔計開外掛o既Phalcon....
...
7h1r733n 發表於 2015-12-10 11:52
用唔著就話人地d 野係垃圾

作者: cosine 時間: 2015-12-10 21:16
用過CI同Laravel, 跟足遊戲玩法都夠做。
搵工都有d野拋下出黎
via HKEPC Reader for Android
作者: 7h1r733n 時間: 2015-12-10 21:23
本帖最後由 7h1r733n 於 2015-12-10 21:57 編輯
https://github.com/kenjis/php-framework-benchmark
https://github.com/kenjis/php-framework-benchmark/tree/optimize <- optimized...
[attach]1848556[/attach]
[attach]1848558[/attach]
[attach]1848559[/attach]
[attach]1848560[/attach]
I have no comment at all...
呢個只係Hello World benchmark.. 如果跑埋ORM... .. CI都要跌返落黎.. (除非做d tricky野, 不過呢度唔係教學... 我就無謂講... ^_^)
不過你可以話performance唔重要o既... CI頂到500 connection果陣.. 你ZF加10部機咪得囉
作者: student_abc 時間: 2015-12-10 22:27
whtat special is about Laravel?

作者: DarkHero 時間: 2015-12-11 21:08
不如拎d 複雜case 黎 比較下zend gei 應用情景
作者: 7h1r733n 時間: 2015-12-11 21:23
本帖最後由 7h1r733n 於 2015-12-11 21:45 編輯
咁簡單一個hello world都可以慢成咁.. 加多d code仲得了? 唔通加多d code會快d?
你唔駛反駁我啦.. 加機啦!
如果performance唔重要.. paypal唔駛轉node.js啦.. 如果performance唔重要.. facebook app唔駛由hybird轉成native啦.... 如果performance唔重要... facebook唔駛出HHVM啦.. 加機咪得囉
當然.... 我再重申一次.. 如果你只係玩開d hobby project.. concurrent connection得果三幾十... 成個system得果三幾百user.. 咁就算你用乜野framework.. 寫得再爛.. 都唔會有咩事...
作者: DarkHero 時間: 2015-12-12 03:00
咁簡單一個hello world都可以慢成咁.. 加多d code仲得了? 唔通加多d code會快d?
你唔駛反駁我啦.. 加機啦! ...
7h1r733n 發表於 2015-12-11 21:23
不如去思考下點解zend 仲咁堅持去整
仲有咁多大公司揀佢
人地整得實有佢gei 道理
d 跑分java 快過其他九條街,你話java 難學咩? 又唔係呀
作者: gossspel 時間: 2015-12-12 05:14
The benchmark uses Apache 2.2, which could be a bottleneck at heavy load. It would be much more interesting to see if the setup is either:
1.) Apache 2.4 with mpm_event and PHP-FPM using ProxyPass
2.) Nginx + PHP-FPM
作者: 7h1r733n 時間: 2015-12-12 17:13
本帖最後由 7h1r733n 於 2015-12-12 17:16 編輯
其實點解我要去思考其他大公司點解揀佢呢? 選一個framework有好多原因... 例如... 有幾多人用.. 適唔適合... 有幾多人識... 易唔易請人... 之類.......
至於zend點解堅持去整? 咁我相信好多野都會越來越有改善o既.. 包括hardware, php core... 例如ZF o系php5同php7行已經係兩個唔同o既performance.. 不過都否定唔到佢係包尾o既事實.. ~_~"
當然.. 其他framework要implement同zf一樣o既功能可能會比ZF更加慢.. 或者我覺得zf應該要好似phalcon咁開外掛.. 先會有出路... 因為真係太慢...
其實你講得o岩.. 要跑得快真係唔好用php... 用php就係要寫得快... 所以... o系唔影響主要效能之下.. 選最多功能o既framework.... 希望ZF o系php7 + opcache有D出路吧... 好大我都係ZCE(ZF1)... 我都希望學左o既野能夠用得上.. ^_^"
作者: 7h1r733n 時間: 2015-12-12 17:14
The benchmark uses Apache 2.2, which could be a bottleneck at heavy load. It would be much more inte ...
gossspel 發表於 2015-12-12 05:14
差距會有改善.. 不過名次影響就不大..
作者: joshua_tam 時間: 2015-12-12 20:58
我用不在標題的Yii Framework
個人意見
好耐以前用CI,感覺要砌backend系統,會係一個惡夢,原生的scaffold只係類似phpMyAdmin...
唔鐘意Laravel個code style
Symfony同Zend framework根本就大食
另外一點係,而家追求performance係要用nginx
via HKEPC Reader for Android
作者: educationer 時間: 2015-12-12 22:56
仲codeigniter?以經過晒時
作者: kof2002 時間: 2015-12-12 23:24
新手想請問, 這些 framework 有沒有CMS, 或是要另外使用CMS e.g. Wordpress
作者: justlazy 時間: 2015-12-12 23:56
CMS 同 Web framework 係唔同層面嘅嘢。
Web Framework 比較低層啲,可以用嚟做大部份 app 嘅 foundation。
CMS 就高層啲、specific 啲,用黎 manage content。
比如 OctoberCMS,就係建立响 Laravel 之上。
作者: student_abc 時間: 2015-12-13 00:02
how about Laravel?

作者: kof2002 時間: 2015-12-13 00:38
CMS 同 Web framework 係唔同層面嘅嘢。
Web Framework 比較低層啲,可以用嚟做大部份 app 嘅 foundatio ...
justlazy 發表於 2015-12-12 23:56
謝謝, 咁點combine cms 和framework? 係咪正確流程是有framework 整website , 之後先set 個cms?
via HKEPC Reader for Android
作者: hihihi123hk 時間: 2015-12-13 11:18
回覆 42# kof2002
1. 用Framework 砌CMS
2. 係現有 CMS 例如 Wordpress 潛建
作者: DarkHero 時間: 2015-12-13 15:37
謝謝, 咁點combine cms 和framework? 係咪正確流程是有framework 整website , 之後先set 個cms?
via HKE ...
kof2002 發表於 2015-12-13 00:38
現有比較有名氣又用framework d 野整gei 有 drupal 同 OctoberCMS
作者: carlkyo 時間: 2015-12-13 21:17
本帖最後由 carlkyo 於 2015-12-14 11:39 編輯
好少直接用fw寫CMS
連rthk都係用joomla
http://johnzjh.com/php_mysql_limit/
作者: justlazy 時間: 2015-12-16 05:51
謝謝, 咁點combine cms 和framework? 係咪正確流程是有framework 整website , 之後先set 個cms?
via HKE ...
kof2002 發表於 2015-12-13 00:38
如果你想寫一個網頁出黎,唔會兩者都用到,因為功能上 CMS 要包括咗好多 web framework 嘅嘢。
CMS 可以係建立响 web framework 之上,例如之前提到嘅 OctoberCMS,亦可以係乜都無就咁寫出黎,例如 Wordpress。唔用 framework 去寫嘅 CMS 代表佢將 framework 嘅功能都一拼寫咗响個 CMS 度。
作者: undplayer 時間: 2015-12-16 15:30
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 7h1r733n 時間: 2015-12-16 17:55
本帖最後由 7h1r733n 於 2015-12-16 17:57 編輯
回覆 7h1r733n
phalcon 快過laravel 咁多, 點解香港沒乜人用?
plugin 式都唔係咩問題, 反正server 都 ...
undplayer 發表於 2015-12-16 15:30
因為唔出名... 好多人連Phalcon聽都未聽過..
我自己都唔用Phalcon... 因為... plugin式有咩事要等佢先fix到... 雖然.. 佢都係opensource... 但我唔想take care埋c
作者: undplayer 時間: 2015-12-16 18:03
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 7h1r733n 時間: 2015-12-16 18:11
呢度有唔同比較... 你可以自己睇吓...
https://www.techempower.com/benc ... peak&test=query
作者: undplayer 時間: 2015-12-16 18:22
提示: 作者被禁止或刪除 內容自動屏蔽
作者: justlazy 時間: 2015-12-16 20:40
回覆 7h1r733n
phalcon 快過laravel 咁多, 點解香港沒乜人用?
plugin 式都唔係咩問題, 反正server 都 ...
undplayer 發表於 2015-12-16 15:30
除咗 7h1r733n 師兄講嘅原因,最重要係因為 web app 好少追求極致嘅 performance optimization。Out of 咁多個 web framework,Laravel 係最好寫。
作者: joshua_tam 時間: 2015-12-16 21:26
回復 52 #justlazy
師兄有冇用過Yii呢?
via HKEPC Reader for Android
作者: ~虎~ 時間: 2015-12-16 21:41
本帖最後由 ~虎~ 於 2015-12-16 21:43 編輯
CI竟然唔係最快果堆... 有D意外 :eek:
Edit: 原來個"Benchmark"只係Hello World...
即係其實差唔多只測到個Path Router Performance :hitwall:
作者: 7h1r733n 時間: 2015-12-16 21:52
排前果幾隻.. 一係就開外掛.. 一係就lightweight到暈.. 咁快都好正常啦..
作者: ~虎~ 時間: 2015-12-16 21:54
我依家用開CI 3.0 + HMVC + 自家Component
貪佢夠快夠簡單 不過CI如果唔用ORM
佢個OO Style好流 AR又麻麻地 好多功能都無內建
寫寫下覺得同Barebone分別唔大
Laravel睇落唔錯 作為一個Framework完整好多, Syntax可讀性高
但未得閒將堆自家Component Port過去
睇過下Doc其實好多都唔洗Port已經內建有 或者出年會跳船過去
作者: 7h1r733n 時間: 2015-12-16 21:59
我依家用開CI 3.0 + HMVC + 自家Component
貪佢夠快夠簡單 不過CI如果唔用ORM
佢個OO Style好流 AR又麻麻 ...
~虎~ 發表於 2015-12-16 21:54
寫program不要為OO而OO..... (特別係php)
作者: slxar 時間: 2015-12-16 22:01
Framework 好睇個人習慣, 有 D 人鐘意大 FW 多功能
有 D 人鐘意自由大 D, 用咩都可以自己加同改
小弟玩過 CakePHP, Laravel, CI, Yii, 自己寫幾個 LIB 再夾 smarty 都用過
到依家轉用 F3 (fat-free)
細細地, 有基本功能, 加野又易, 鐘意既自己整晒 MVC 又得, 加 PLUGIN 做埋 ORM/Validation, User/Groups/ACL 又得
最重要係總有 D 客係用舊版 PHP 又唔肯升新版, 諗住裝個 Laravel 落去都唔得
有能力有時間最好自己寫一套, 唔係既用 D lightweight 簡簡單單, 快快手手做起 D 野就得, 理得你用咩 FW
作者: ~虎~ 時間: 2015-12-16 22:37
本帖最後由 ~虎~ 於 2015-12-16 22:39 編輯
我都明...
用Framework都係為左開發速度同可讀性
OO、ORM好多時的確好大幫助
依家CI最慘就係無自家ORM, DataMapper又已經廢棄左幾年
Doctrine同CI整合性好低, 玩過下唔太鐘意
另外CI 3.0無乜人討論 舊Plugin又好多用唔返 好有孤兒Feel
想轉Laravel主要係佢Community比較大 同埋佢個Eloquent ORM
但要求PHP 5.5.9如果唔係Provide埋Server真係比較濕滯...
作者: carlkyo 時間: 2015-12-16 22:41
https://codeigniter.org.tw/userguide3/database/examples.html
易睇D
作者: ~虎~ 時間: 2015-12-16 22:43
本帖最後由 ~虎~ 於 2015-12-16 22:45 編輯
認真... 易睇!?
寫Program睇中文Doc?
作者: 7h1r733n 時間: 2015-12-16 22:47
這只是DBAL..不是ORM
作者: 7h1r733n 時間: 2015-12-16 22:50
PHP ORM一係Doctrine, 一係Propel.. 兩者都用過.. 其實都係差唔多...
作者: carlkyo 時間: 2015-12-17 08:51
本帖最後由 carlkyo 於 2015-12-17 09:06 編輯
回覆 61# ~虎~
Program
聽ching話Laravel好
專心學Laravel
作者: ~虎~ 時間: 2015-12-17 16:48
本帖最後由 ~虎~ 於 2015-12-17 16:50 編輯
我都未實際用過...
最好自己睇一睇 試一試係咪啱自己Style先
好多特性, 有人好愛, 有人憎到佢死
例如Annotations... 我最憎見到
作者: justlazy 時間: 2015-12-17 21:23
用過,有段時間好期待佢出 2.0,但等咗好耐.. 之後用咗 Laravel,由 Laravel 3 用到而家 Laravel 5,無返過轉頭。
Laravel 個 style 同 architecture 會幫人寫到啲高啲 quality 嘅 code,呢方面 Yii 提供唔到。我執過好多 Yii Project 手尾啲 code 幾爛都有。
F3 都用過,不過連唔鐘意佢咩都唔記得嚕。
作者: justlazy 時間: 2015-12-17 21:25
我依家用開CI 3.0 + HMVC + 自家Component
貪佢夠快夠簡單 不過CI如果唔用ORM
佢個OO Style好流 AR又麻麻 ...
~虎~ 發表於 2015-12-16 21:54
其實 Laravel 個作者 Taylor Otwell 本身都係用開 CI,用到唔滿意先寫咗 Laravel 出嚟,所以早期 Laravel 同 CI 個 architecture 接近到就咁搬啲 code 過去都用到。
作者: justlazy 時間: 2015-12-17 21:27
仲有 Laravel 嘅 Eloquent,都可以獨立用~
作者: ~虎~ 時間: 2015-12-17 22:06
回覆 67# justlazy
唔睇其他Framework由是可... 一睇即刻想跳船
ORM, Queues, Task Scheduling...
5.1仲連ACL都有埋 玩得熟真係可以寫少好多野
作者: joshua_tam 時間: 2015-12-17 22:50
回復 66 #justlazy
Yii 1的確有爛code的可能,但Laravel真的能減少爛code情況出現?
我自己冇正式用過,只睇document感覺個structure唔係咁strict,好有機會有人亂寫code。
via HKEPC Reader for Android
作者: DarkHero 時間: 2015-12-18 00:39
回復 justlazy
Yii 1的確有爛code的可能,但Laravel真的能減少爛code情況出現?
我自己冇正式用過,只睇d ...
joshua_tam 發表於 2015-12-17 22:50
爛code 呢d 野有得唔俾人寫?
java 都可以一個file 寫晒全部啦~~~無限inner class
作者: justlazy 時間: 2015-12-18 03:55
回復 justlazy
Yii 1的確有爛code的可能,但Laravel真的能減少爛code情況出現?
我自己冇正式用過,只睇d ...
joshua_tam 發表於 2015-12-17 22:50
太 strict 會覺得煩,小弟自己就覺得佢啱啱好。
我睇過嘅 web framework code 入面,Yii 同 CI 最爛。Symfony 同 Laravel 最少。
CMS 差唔多隻隻都爛得好緊要... 不過唔爛都唔駛揾人執手尾嘅。
e-commerce 就 prestashop 最爛,Magento 都唔好得去邊,但比起 preatashop 算好好。
作者: justlazy 時間: 2015-12-18 03:59
如果咁講咩 language 都可以寫得爛。
Laravel core 同大部分 plugin 嘅 code 都好高質素,正正常常跟住 standard 寫已經係 PHP 之中嘅靚 code。
作者: ~虎~ 時間: 2015-12-18 15:09
回覆 72# justlazy
e-commerce 講爛Code...
OS Commerce 係表表者 我從未見過有一個爛得過佢 不過已經無人用
Zen Cart 同 OS Commerce一擔擔
OpenCart 都爛爛地, 好多地方重覆又重覆, Plugin安裝方法詭異 (vqMod)
Magento 好複雜, 唔行Cache慢到喊
WooCommerce係Base on Wordpress嘅大型僭建物 如果接受到Wordpress的話還好
作者: justlazy 時間: 2015-12-18 18:34
Wordpress 用 engineering 角度睇已經唔係好接受到。啱啱先執完一個 WooCommerce 爛尾 project,由 theme 到十幾個 plugin 啲 code 爛到喊出嚟。有幾個 plugins 用 filters 用到好鬼衰,最後一定要改佢啲 source code 先搞得掂
作者: mafei 時間: 2015-12-18 22:44
Wordpress 用 engineering 角度睇已經唔係好接受到。啱啱先執完一個 WooCommerce 爛尾 project,由 them ...
justlazy 發表於 2015-12-18 18:34
睇laravel d code 仲跟到發生咩事,睇wordpress 真係好亂跟唔到
作者: justlazy 時間: 2015-12-19 01:27
梗係啦,WordPress 咁多 magic functions。
作者: alan11abc 時間: 2015-12-19 01:40
你明嘅
via HKEPC Reader for Android
作者: 7h1r733n 時間: 2015-12-19 11:31
magic method係好慢... ~_~"
作者: joshua_tam 時間: 2015-12-19 20:47
回覆 73# justlazy
我今日略略試過Laravel,感覺有d standard嘢Laravel係冇...
以下例子,用佢 Basic Task List 個 Tutorial
其中一段叫你寫:
- /**
- * Display All Tasks
- */
- Route::get('/', function () {
- return view('tasks');
- });
係我個case太extreme,定有地方set漏嘢?
作者: 顏佬 時間: 2015-12-19 21:23
提示: 作者被禁止或刪除 內容自動屏蔽
作者: justlazy 時間: 2015-12-19 21:54
回覆 justlazy
我今日略略試過Laravel,感覺有d standard嘢Laravel係冇...
以下例子,用佢 Basic Task ...
joshua_tam 發表於 2015-12-19 20:47
我諗係因為你無 enable development mode。佢個 stack trace 做得好靚。
作者: joshua_tam 時間: 2015-12-20 00:36
回覆 81# 顏佬
回覆 82# justlazy
有開development mode的
發現左,係storage入面log file問題,default permission係唔啱的
因為我用自己account去create project,但run時係用www-data,permission寫唔入log file
trace得好唔好見仁見智,但我覺得你 OOP 入面夾雜例如 view() 呢d function 似乎唔係咁好?
作者: joshua_tam 時間: 2015-12-20 01:00
返番個topic先,如果只得zend, codeigniter, laravel, symfony, 我會㨂laravel
但如果考慮到要有MVC、九成code都用OO的,我會㨂Yii
performance黎講,唔同web server (apache vs nginx)有好大分別
的確有人會覺得寫php,唔好為OO而OO,但同人夾project時,OO定唔OO好d呢?
Um...呢樣嘢真係個人選擇呢...haha
作者: joshua_tam 時間: 2015-12-20 01:07
題外話,你地寫php會點做unit test?
有冇用過PHPUnit, Codeception等等的Testing Framework?
作者: 梁炳 時間: 2015-12-20 11:44
回覆 顏佬
回覆 justlazy
有開development mode的
發現左,係storage入面log file問題,default per ...
joshua_tam 發表於 2015-12-20 00:36
view() 係laravel提供的function,無話好唔好,唔好當PHP係Java來寫,要embrace PHP既好處
L4中係用return View::make('...'),你覺得邊個好? 對我來講syntax簡化左就係好
而且呢個view(),即使你搬你D code去第二個framework,都係好容易implement番呢個view() function
如果你唔想你的code太depend on Laravel, 係可以的,但MVC部份十分難避免
主要靠閣下既功力
作者: 7h1r733n 時間: 2015-12-20 12:14
返番個topic先,如果只得zend, codeigniter, laravel, symfony, 我會㨂laravel
但如果考慮到要有MVC、九成 ...
joshua_tam 發表於 2015-12-20 01:00
同人夾果陣.. 自己寫自己果part.. ^_^"
呢個同係咪OO冇關係.. 冇OO果陣難道唔可以同人一齊寫program?
作者: joshua_tam 時間: 2015-12-20 12:29
回復 87 #7h1r733n
當然自己寫自己果part, 但總會有d位要夾code嘛…d style好大分別,你想用oo, 人地就用好多function, um…
via HKEPC Reader for Android
作者: joshua_tam 時間: 2015-12-20 12:43
回復 86 #梁炳
簡化code係好既,但我比較喜歡L4的寫法,因為你起碼知道,你係用緊View的class,我就咁用view()會唔知我實際用緊咩class。
的確,有些framework係同java好似,有d就好有php的風格,但愈似java,是否代表愈慢?我覺得唔一定。
via HKEPC Reader for Android
作者: 7h1r733n 時間: 2015-12-20 12:52
回復 7h1r733n
當然自己寫自己果part, 但總會有d位要夾code嘛…d style好大分別,你想用oo, 人地就用好多f ...
joshua_tam 發表於 2015-12-20 12:29
咁呢個要睇每間公司個做法.. 我地自己就通常係寫module.. 做好哂有咩interface.. 我理得你入面點寫.. :D
我只需要知道你呢個class 有咩method比我call到就得... 如果唔係oo的話.. 我只需要知道你呢個"file"有咩method比我call到就得.......
如果連咁基本溝通都做唔到就真係唔好一齊夾.. 哂氣
作者: 7h1r733n 時間: 2015-12-20 13:01
php越多class係代表越慢... 呢個係一定..
OO係為左方便... 同懶係OO.... 有d人... "迷信OO係解決問題o既唯一方法"
o系絕大多數language裡面.. procedural programming係一定快過oop的... 只係越寫得多野果陣越難維護.... 所以... o系唔係performance critical情況吓.... 而家D人係會鐘意用"容易維護" / "方便" o既解決問題方法... 但記住OO唔係唯一解決問題o既方法...
作者: joshua_tam 時間: 2015-12-20 13:32
回復 91 #7h1r733n
當然,理論上class係點都慢過procedural programming,我都認同是應該適當時o候才用oo。
當係得你自己解決問題時,用procedural係會快d。但當係一team人做project、又想用framework時,我覺得係應該選擇果d architecture上有利team collaboration的framework。
via HKEPC Reader for Android
作者: 7h1r733n 時間: 2015-12-20 13:43
回復 7h1r733n
當然,理論上class係點都慢過procedural programming,我都認同是應該適當時o候才用oo。
...
joshua_tam 發表於 2015-12-20 13:32
其實... 用咩framework係唔到你去決定... 除非你話到事啦.. 如果唔係... 人地話用邊隻咪邊隻囉.. 唔需要太執著. ^_^
作者: DarkHero 時間: 2015-12-20 13:53
用oo 寫完再轉返做procedural
某d c++編繹器係會咁樣做
作者: carlkyo 時間: 2015-12-21 20:28
procedural諗到麥就寫麥
OO寫完function再拿來用
作者: 梁炳 時間: 2015-12-21 23:07
唔關事, procedural都可以分functions分module可以reuse
主要係思考方法分別
作者: justlazy 時間: 2015-12-22 01:15
Laravel 其中一樣好處就係佢可以比你選擇。 view() 只係 shortcut method,你鐘意 View::make() 一樣可以响 L5 度用。
我自己鐘意 convention over configuration,Laravel 好比到呢樣嘢我。
作者: justlazy 時間: 2015-12-22 01:17
php越多class係代表越慢... 呢個係一定..
OO係為左方便... 同懶係OO.... 有d人... "迷信OO係解決問題o既唯 ...
7h1r733n 發表於 2015-12-20 13:01
我學生時代都曾經過分迷信 OO
作者: ~虎~ 時間: 2015-12-22 02:21
本帖最後由 ~虎~ 於 2015-12-22 02:22 編輯
Procedural都有靚Code, OO都大把爛Code
但係講Performance, 我見過+收拾過嘅Performance問題爛攤子
極少真係因為OO所以有先問題
根本係Logic問題比較嚴重, 寫少個Nested Query, Set好D DB Index已經改善好大
無謂迷信OO, 其實都無謂迷信Procedural行快果少少
Heavy-OO嘅Framework慢我諗多數因為ORM
Magento慢到嘔血就因為Nested Query
之前講"Hello World"都慢果D就明顯係Router太複雜
作者: 7h1r733n 時間: 2015-12-22 10:53
Procedural都有靚Code, OO都大把爛Code
但係講Performance, 我見過+收拾過嘅Performance問題爛攤子
極少真 ...
~虎~ 發表於 2015-12-22 02:21
hello world都慢係因為用得太多autoloader同埋magic method..
停左個autoload就會好D...

