Board logo

標題: zend, codeigniter, laravel, symfony 你地會選那一個? [打印本頁]

作者: 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 編輯
/_\有冇d容易d學既framework
全部都係mvc
044003 發表於 2015-12-9 16:39



    寫個crud既class去處理所有tables
再加DT都幾好
  1. class Database{
  2.         /*
  3.          * Create variables for credentials to MySQL database
  4.          * The variables have been declared as private. This
  5.          * means that they will only be available with the
  6.          * Database class
  7.          */
  8.         private $db_host = "localhost";  // Change as required
  9.         private $db_user = "user";  // Change as required
  10.         private $db_pass = "password";  // Change as required
  11.         private $db_name = "database";        // Change as required
  12.        
  13.         /*
  14.          * Extra variables that are required by other function such as boolean con variable
  15.          */
  16.         private $con = false; // Check to see if the connection is active
  17.         private $result = array(); // Any results from a query will be stored here
  18.     private $myQuery = "";// used for debugging process with SQL return
  19.     private $numResults = "";// used for returning the number of rows
  20.        
  21.         // Function to make connection to database
  22.         public function connect(){
  23.                 if(!$this->con){
  24.                         $myconn = @mysql_connect($this->db_host,$this->db_user,$this->db_pass);  // mysql_connect() with variables defined at the start of Database class
  25.             if($myconn){
  26.                     $seldb = @mysql_select_db($this->db_name,$myconn); // Credentials have been pass through mysql_connect() now select the database
  27.                 if($seldb){
  28.                         $this->con = true;
  29.                     return true;  // Connection has been made return TRUE
  30.                 }else{
  31.                         array_push($this->result,mysql_error());
  32.                     return false;  // Problem selecting database return FALSE
  33.                 }  
  34.             }else{
  35.                     array_push($this->result,mysql_error());
  36.                 return false; // Problem connecting return FALSE
  37.             }  
  38.         }else{  
  39.             return true; // Connection has already been made return TRUE
  40.         }         
  41.         }
  42.        
  43.         // Function to disconnect from the database
  44.     public function disconnect(){
  45.             // If there is a connection to the database
  46.             if($this->con){
  47.                     // We have found a connection, try to close it
  48.                     if(@mysql_close()){
  49.                             // We have successfully closed the connection, set the connection variable to false
  50.                             $this->con = false;
  51.                                 // Return true tjat we have closed the connection
  52.                                 return true;
  53.                         }else{
  54.                                 // We could not close the connection, return false
  55.                                 return false;
  56.                         }
  57.                 }
  58.     }
  59.        
  60.         public function sql($sql){
  61.                 $query = @mysql_query($sql);
  62.         $this->myQuery = $sql; // Pass back the SQL
  63.                 if($query){
  64.                         // If the query returns >= 1 assign the number of rows to numResults
  65.                         $this->numResults = mysql_num_rows($query);
  66.                         // Loop through the query results by the number of rows returned
  67.                         for($i = 0; $i < $this->numResults; $i++){
  68.                                 $r = mysql_fetch_array($query);
  69.                        $key = array_keys($r);
  70.                        for($x = 0; $x < count($key); $x++){
  71.                                // Sanitizes keys so only alphavalues are allowed
  72.                            if(!is_int($key[$x])){
  73.                                    if(mysql_num_rows($query) >= 1){
  74.                                            $this->result[$i][$key[$x]] = $r[$key[$x]];
  75.                                                 }else{
  76.                                                         $this->result = null;
  77.                                                 }
  78.                                         }
  79.                                 }
  80.                         }
  81.                         return true; // Query was successful
  82.                 }else{
  83.                         array_push($this->result,mysql_error());
  84.                         return false; // No rows where returned
  85.                 }
  86.         }
  87.        
  88.         // Function to SELECT from the database
  89.         public function select($table, $rows = '*', $join = null, $where = null, $order = null, $limit = null){
  90.                 // Create query from the variables passed to the function
  91.                 $q = 'SELECT '.$rows.' FROM '.$table;
  92.                 if($join != null){
  93.                         $q .= ' JOIN '.$join;
  94.                 }
  95.         if($where != null){
  96.                 $q .= ' WHERE '.$where;
  97.                 }
  98.         if($order != null){
  99.             $q .= ' ORDER BY '.$order;
  100.                 }
  101.         if($limit != null){
  102.             $q .= ' LIMIT '.$limit;
  103.         }
  104.         $this->myQuery = $q; // Pass back the SQL
  105.                 // Check to see if the table exists
  106.         if($this->tableExists($table)){
  107.                 // The table exists, run the query
  108.                 $query = @mysql_query($q);
  109.                         if($query){
  110.                                 // If the query returns >= 1 assign the number of rows to numResults
  111.                                 $this->numResults = mysql_num_rows($query);
  112.                                 // Loop through the query results by the number of rows returned
  113.                                 for($i = 0; $i < $this->numResults; $i++){
  114.                                         $r = mysql_fetch_array($query);
  115.                         $key = array_keys($r);
  116.                         for($x = 0; $x < count($key); $x++){
  117.                                 // Sanitizes keys so only alphavalues are allowed
  118.                             if(!is_int($key[$x])){
  119.                                     if(mysql_num_rows($query) >= 1){
  120.                                             $this->result[$i][$key[$x]] = $r[$key[$x]];
  121.                                                         }else{
  122.                                                                 $this->result = null;
  123.                                                         }
  124.                                                 }
  125.                                         }
  126.                                 }
  127.                                 return true; // Query was successful
  128.                         }else{
  129.                                 array_push($this->result,mysql_error());
  130.                                 return false; // No rows where returned
  131.                         }
  132.               }else{
  133.                       return false; // Table does not exist
  134.             }
  135.     }
  136.        
  137.         // Function to insert into the database
  138.     public function insert($table,$params=array()){
  139.             // Check to see if the table exists
  140.              if($this->tableExists($table)){
  141.                      $sql='INSERT INTO `'.$table.'` (`'.implode('`, `',array_keys($params)).'`) VALUES ("' . implode('", "', $params) . '")';
  142.             $this->myQuery = $sql; // Pass back the SQL
  143.             // Make the query to insert to the database
  144.             if($ins = @mysql_query($sql)){
  145.                     array_push($this->result,mysql_insert_id());
  146.                 return true; // The data has been inserted
  147.             }else{
  148.                     array_push($this->result,mysql_error());
  149.                 return false; // The data has not been inserted
  150.             }
  151.         }else{
  152.                 return false; // Table does not exist
  153.         }
  154.     }
  155.        
  156.         //Function to delete table or row(s) from database
  157.     public function delete($table,$where = null){
  158.             // Check to see if table exists
  159.              if($this->tableExists($table)){
  160.                      // The table exists check to see if we are deleting rows or table
  161.                      if($where == null){
  162.                 $delete = 'DROP TABLE '.$table; // Create query to delete table
  163.             }else{
  164.                 $delete = 'DELETE FROM '.$table.' WHERE '.$where; // Create query to delete rows
  165.             }
  166.             // Submit query to database
  167.             if($del = @mysql_query($delete)){
  168.                     array_push($this->result,mysql_affected_rows());
  169.                 $this->myQuery = $delete; // Pass back the SQL
  170.                 return true; // The query exectued correctly
  171.             }else{
  172.                     array_push($this->result,mysql_error());
  173.                        return false; // The query did not execute correctly
  174.             }
  175.         }else{
  176.             return false; // The table does not exist
  177.         }
  178.     }
  179.        
  180.         // Function to update row in database
  181.     public function update($table,$params=array(),$where){
  182.             // Check to see if table exists
  183.             if($this->tableExists($table)){
  184.                     // Create Array to hold all the columns to update
  185.             $args=array();
  186.                         foreach($params as $field=>$value){
  187.                                 // Seperate each column out with it's corresponding value
  188.                                 $args[]=$field.'="'.$value.'"';
  189.                         }
  190.                         // Create the query
  191.                         $sql='UPDATE '.$table.' SET '.implode(',',$args).' WHERE '.$where;
  192.                         // Make query to database
  193.             $this->myQuery = $sql; // Pass back the SQL
  194.             if($query = @mysql_query($sql)){
  195.                     array_push($this->result,mysql_affected_rows());
  196.                     return true; // Update has been successful
  197.             }else{
  198.                     array_push($this->result,mysql_error());
  199.                 return false; // Update has not been successful
  200.             }
  201.         }else{
  202.             return false; // The table does not exist
  203.         }
  204.     }
  205.        
  206.         // Private function to check if table exists for use with queries
  207.         private function tableExists($table){
  208.                 $tablesInDb = @mysql_query('SHOW TABLES FROM '.$this->db_name.' LIKE "'.$table.'"');
  209.         if($tablesInDb){
  210.                 if(mysql_num_rows($tablesInDb)==1){
  211.                 return true; // The table exists
  212.             }else{
  213.                     array_push($this->result,$table." does not exist in this database");
  214.                 return false; // The table does not exist
  215.             }
  216.         }
  217.     }
  218.        
  219.         // Public function to return the data to the user
  220.     public function getResult(){
  221.         $val = $this->result;
  222.         $this->result = array();
  223.         return $val;
  224.     }
  225.     //Pass the SQL back for debugging
  226.     public function getSql(){
  227.         $val = $this->myQuery;
  228.         $this->myQuery = array();
  229.         return $val;
  230.     }
  231.     //Pass the number of rows back
  232.     public function numRows(){
  233.         $val = $this->numResults;
  234.         $this->numResults = array();
  235.         return $val;
  236.     }
  237.     // Escape your string
  238.     public function escapeString($data){
  239.         return mysql_real_escape_string($data);
  240.     }
  241. }
複製代碼

作者: 7h1r733n    時間: 2015-12-9 22:40

寫個crud既class去處理所有tables
再加DT都幾好
carlkyo 發表於 2015-12-9 22:07

如果剩係做crud..做乜唔scaffold....
作者: 7h1r733n    時間: 2015-12-9 22:43

/_\有冇d容易d學既framework
全部都係mvc
044003 發表於 2015-12-9 16:39

MVC其實係多餘.. 懶係好... 其實就慢到hihi... 特別係有ORM果D(大多數).. 低能到爆.. ~_~"
當然可以為左(好似係)良好design/structure 而放棄performance... 唔夠快就加多兩部機. ^_^
作者: 7h1r733n    時間: 2015-12-9 22:44

如果for 打工, 你地會選那一個?
undplayer 發表於 2015-12-9 13:39

呢幾隻都用過... laravel係比較好..
作者: gamezz    時間: 2015-12-9 22:49

codeigniter 比較簡單,行得快
作者: 顏佬    時間: 2015-12-9 22:58

提示: 作者被禁止或刪除 內容自動屏蔽
作者: DarkHero    時間: 2015-12-9 23:28

/_\有冇d容易d學既framework
全部都係mvc
044003 發表於 2015-12-9 16:39


有見識下無用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 編輯
加一部機要幾多錢?
加多一個manday 又要幾多錢?
DarkHero 發表於 2015-12-9 23:30

加一部似樣o既機... 唔好彩可以十幾廿萬.. sparc的話.
1 man day我就計3500... 但實際人工其實可能只係千鬆d...

好難比較...

當然你可以話加一部"窮人文書機", 2000有找.. 咁你win囉.
作者: DarkHero    時間: 2015-12-9 23:59

加一部似樣o既機... 唔好彩可以十幾廿萬.. sparc的話.
1 man day我就計3500... 但實際人工其實可能只係千 ...
7h1r733n 發表於 2015-12-9 23:35



    十幾廿萬 同 2k 個d desktop run 一句普通sql select 效能會相差幾多?
作者: 3ldk    時間: 2015-12-10 00:16

如果剩係做crud..做乜唔scaffold....
7h1r733n 發表於 2015-12-9 22:40



咁scaffold你又會用乜做?
作者: 7h1r733n    時間: 2015-12-10 07:05

本帖最後由 7h1r733n 於 2015-12-10 09:28 編輯
十幾廿萬 同 2k 個d desktop run 一句普通sql select 效能會相差幾多?
DarkHero 發表於 2015-12-9 23:59

睇吓句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

十幾廿萬 同 2k 個d desktop run 一句普通sql select 效能會相差幾多?
DarkHero 發表於 2015-12-9 23:59


留意一部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

Do you like zend? It runs ORM
student_abc 發表於 2015-12-10 11:02

ZF係我最唔鐘意o既php framework
作者: student_abc    時間: 2015-12-10 11:42

ZF係我最唔鐘意o既php framework
7h1r733n 發表於 2015-12-10 11:33



Which framework do you like in PHP?
WHy?
作者: 7h1r733n    時間: 2015-12-10 11:52

Which framework do you like in PHP?
WHy?
student_abc 發表於 2015-12-10 11:42

用咩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 編輯
行得快唔快,應該係你最後一個考慮
先睇下邊個最make sense to you
易學又有彈性做到最common既野

我就建 ...
梁炳 發表於 2015-12-10 16:05



   學緊
作者: 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 編輯
用唔著就話人地d 野係垃圾
DarkHero 發表於 2015-12-10 20:24

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

用過CI同Laravel, 跟足遊戲玩法都夠做。
搵工都有d野拋下出黎

via HKEPC Reader for Android ...
cosine 發表於 2015-12-10 21:16



    whtat special is about Laravel?
作者: DarkHero    時間: 2015-12-11 21:08

7h1r733n 發表於 2015-12-10 21:23


不如拎d 複雜case 黎 比較下zend gei 應用情景
作者: 7h1r733n    時間: 2015-12-11 21:23

本帖最後由 7h1r733n 於 2015-12-11 21:45 編輯
不如拎d 複雜case 黎 比較下zend gei 應用情景
DarkHero 發表於 2015-12-11 21:08

咁簡單一個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-10 21:23

作者: 7h1r733n    時間: 2015-12-12 17:13

本帖最後由 7h1r733n 於 2015-12-12 17:16 編輯
不如去思考下點解zend 仲咁堅持去整
仲有咁多大公司揀佢

人地整得實有佢gei 道理

d 跑分java 快過其他九 ...
DarkHero 發表於 2015-12-12 03:00

其實點解我要去思考其他大公司點解揀佢呢? 選一個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

新手想請問, 這些 framework 有沒有CMS, 或是要另外使用CMS e.g. Wordpress
kof2002 發表於 2015-12-12 23:24


CMS 同 Web framework 係唔同層面嘅嘢。

Web Framework 比較低層啲,可以用嚟做大部份 app 嘅 foundation。

CMS 就高層啲、specific 啲,用黎 manage content。

比如 OctoberCMS,就係建立响 Laravel 之上。
作者: student_abc    時間: 2015-12-13 00:02

仲codeigniter?以經過晒時
educationer 發表於 2015-12-12 22:56



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

回覆  7h1r733n


    phalcon 快唔快得過node.js ?



下個ver support php7
undplayer 發表於 2015-12-16 18:03

呢度有唔同比較... 你可以自己睇吓...
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 編輯
7h1r733n 發表於 2015-12-10 21:23

CI竟然唔係最快果堆... 有D意外 :eek:

Edit: 原來個"Benchmark"只係Hello World...
即係其實差唔多只測到個Path Router Performance :hitwall:
作者: 7h1r733n    時間: 2015-12-16 21:52

CI竟然唔係最快果堆... 有D意外

Edit: 原來個"Benchmark"只係Hello World...
即係其實差唔多只測 ...
~虎~ 發表於 2015-12-16 21:41

排前果幾隻.. 一係就開外掛.. 一係就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 編輯
寫program不要為OO而OO..... (特別係php)
7h1r733n 發表於 2015-12-16 21:59

我都明...
用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 編輯
易睇D
carlkyo 發表於 2015-12-16 22:41

認真... 易睇!?
寫Program睇中文Doc?
作者: 7h1r733n    時間: 2015-12-16 22:47

易睇D
carlkyo 發表於 2015-12-16 22:41

這只是DBAL..不是ORM
作者: 7h1r733n    時間: 2015-12-16 22:50

我都明...
用Framework都係為左開發速度同可讀性
OO、ORM好多時的確好大幫助

依家CI最慘就係無自家ORM, D ...
~虎~ 發表於 2015-12-16 22:37

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 編輯
回覆  ~虎~
Program
聽ching話Laravel好
專心學Laravel
carlkyo 發表於 2015-12-17 08:51

我都未實際用過...
最好自己睇一睇 試一試係咪啱自己Style先

好多特性, 有人好愛, 有人憎到佢死
例如Annotations... 我最憎見到
作者: justlazy    時間: 2015-12-17 21:23

回復 justlazy

師兄有冇用過Yii呢?

via HKEPC Reader for Android
joshua_tam 發表於 2015-12-16 21:26


用過,有段時間好期待佢出 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

PHP ORM一係Doctrine, 一係Propel.. 兩者都用過.. 其實都係差唔多...
7h1r733n 發表於 2015-12-16 22:50



仲有 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

爛code 呢d 野有得唔俾人寫?
java 都可以一個file 寫晒全部啦~~~無限inner class ...
DarkHero 發表於 2015-12-18 00:39


如果咁講咩 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

回覆  justlazy
e-commerce 講爛Code...

OS Commerce 係表表者 我從未見過有一個爛得過佢 不過已經無人用 ...
~虎~ 發表於 2015-12-18 15:09



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

睇laravel d code 仲跟到發生咩事,睇wordpress 真係好亂跟唔到
mafei 發表於 2015-12-18 22:44


梗係啦,WordPress 咁多 magic functions。
作者: alan11abc    時間: 2015-12-19 01:40

認真... 易睇!?
寫Program睇中文Doc?
~虎~ 發表於 2015-12-16 22:43

你明嘅

via HKEPC Reader for Android
作者: 7h1r733n    時間: 2015-12-19 11:31

梗係啦,WordPress 咁多 magic functions。
justlazy 發表於 2015-12-19 01:27

magic method係好慢... ~_~"
作者: joshua_tam    時間: 2015-12-19 20:47

回覆 73# justlazy

我今日略略試過Laravel,感覺有d standard嘢Laravel係冇...

以下例子,用佢 Basic Task List 個 Tutorial

其中一段叫你寫:
  1. /**
  2. * Display All Tasks
  3. */
  4. Route::get('/', function () {
  5.     return view('tasks');
  6. });
複製代碼
如果我冇在 /resources/view/ 開tasks.blade.php呢個file,佢直接比500 error我,任何 debug message都冇

係我個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

回復 梁炳

簡化code係好既,但我比較喜歡L4的寫法,因為你起碼知道,你係用緊View的class,我就咁用view() ...
joshua_tam 發表於 2015-12-20 12:43

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諗到麥就寫麥
OO寫完function再拿來用
carlkyo 發表於 2015-12-21 20:28



唔關事, procedural都可以分functions分module可以reuse
主要係思考方法分別
作者: justlazy    時間: 2015-12-22 01:15

回復 梁炳

簡化code係好既,但我比較喜歡L4的寫法,因為你起碼知道,你係用緊View的class,我就咁用view() ...
joshua_tam 發表於 2015-12-20 12:43


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...





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2