搜索

首页  >  问答  >  正文

PHP也做好好多年了,最近在看laravel框架,但是面对如此丰富的文档,我却不知道在讲什么,完全看不懂,请问我是哪里出了问题?

如题,苦恼啊!
我该怎么办呢?
求有经验的前辈大哥给点指点!
谢谢!

PHP中文网PHP中文网2789 天前5530

全部回复(29)我来回复

  • 2019-08-13 23:19:48

    收藏

    回复
    0
  • 迷茫

    迷茫2017-04-10 16:40:43

    没有接受 laravel 的理念。

    另一方面,laravel 的门槛确实比普通框架高。

    我们学一门技术,不是因为他简单,而是因为他强大。

    完全看不懂

    这比较难回答了,太笼统了。

    先写个 hello world 吧。

    懂了。第一步迈出去了。

    再写个 hello name 吧。

    hello tom
    hello jerry
    hello zhangsan
    hello hanmeimei
    

    懂了,知道怎么传递 GET 参数了,控制器啊,路由啊,什么什么的。。。。

    再写个小页面吧,页面里输出 hello name

    又懂了,View 懂了。

    再写吧,把 name 放到数据库。ORM也懂了。

    。。。。

    just do it

    just do it

    just do it

    回复
    0
  • PHPz

    PHPz2017-04-10 16:40:43

    看Laravel就像在看文章一样,所见即所得,条理非常清晰。你看不懂,可能是应为你不熟悉OOP,或者MVC,或者看的时间太短。看文档不能只看代码部分,说明部分也很重要,名词解释,结构说明往往都在大段文字的部分。

    P.S. 很久以前看过wordpress的代码,感觉就是历史的遗物,在当时WP那个年代,这种简单粗暴的CMS项目容易上手,加上生态圈渐渐庞大,一句代码不懂的人,会点css,html的人都能靠插件搞CMS站了。但是今天如果你理解不了依赖注入,事件驱动,自动测试,模块化组件,MVC带来的好处,还在念着wordpress,discuz的好,那只能希望你继续用wordpress,discuz了。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 16:40:43

    <?php
    require( dirname(__FILE__) . '/wp-load.php' );
    
    if ( force_ssl_admin() && ! is_ssl() ) {
        if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {
            wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
            exit();
        } else {
            wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
            exit();
        }
    }
    
    function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
        global $error, $interim_login, $action;
    
        // Don't index any of these forms
        add_action( 'login_head', 'wp_no_robots' );
    
        if ( wp_is_mobile() )
            add_action( 'login_head', 'wp_login_viewport_meta' );
    
    ………………
    
    ?><!DOCTYPE html>
        <!--[if IE 8]>
            <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes(); ?>>
        <![endif]-->
        <!--[if !(IE 8) ]><!-->
            <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
        <!--<![endif]-->
        <head>
        <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
        <title><?php bloginfo('name'); ?> &rsaquo; <?php echo $title; ?></title>
        <?php

    像上面那种代码,确实简单易懂,(wordpress源码),但是可能不够优雅,更别提源码中这些_SERVER数组,例如$http_post = ('POST' == $_SERVER['REQUEST_METHOD']);

    拥抱变化,拥抱不同的思想,有些框架并不仅仅是PHP基础函数的一点封装。

    和大部分框架做的一样,laravel无非是路由器+视图+控制器+模型,只不过laravel封装的比较狠,一个->withName和一个->withNames直接能在下一个页面创建一个名叫name的和一个名叫names的变量:原来PHP也能这样玩。

    在深入下去,会发现laravel居然也搞依赖注入,类,完全和其他的语言一样。

    不要总是徘徊不前。

    其他:
    框架之争关我毛事,让用什么用什么……
    我要写Go。


    补充两点:

    1. 非得说名人名言的话:思想自由,兼容并包---蔡元培。

    2. 我对PHP框架没什么歧视,唯独偏爱YII。但是我觉得laravel完全可以看成是一门新的、兼容PHP的语言。每个框架都能看成一门语言,其实更清楚点说,应该是每个框架都有其背后的思想。

    3. 拥抱改变。

    4. 没工作的时候,代码再优雅并没有什么用。有工作的时候,代码优雅能当加餐吃。

    5. laravel的官方文档其实并不怎么全,看上去很全,有很多东西没有写出来。这个时候,零散的知识点查谷歌最好,百度也搜到部分相关的成体系的文章:两个一定都要用。

    6. mysqli不要再用了……
      用一下PDO+prepared statement……
      laravel有非常好的查询方法(详见查询构造器)和Eloquent……


    这么多年技术一直在变化,唯一不变化的就是变化本身。

    你把C++当成C with class来用,倒也没什么,
    但是把C++当成C来面向过程就有点。

    PHP的高级用法并不是无缘无故加上去的,也不是让它在角落里吃灰的。

    PHP已经提供了类,面向对象,甚至闭包函数、lambda函数(PHP5.3),
    再死守着面向过程的那一套反而是食古不化。

    回复
    0
  • 迷茫

    迷茫2017-04-10 16:40:43

    可能因为英文本来就不是我们的母语所以好处没有那么深 但是你用久了 laravel 你会发现所有的设定都是想办法让代码读起来像一句话

    我觉得你不要看中文文档先 认认真真过两遍英文文档然后看看laracasts的 l5 基础 那个系列

    看laravel开始不明白很正常 没人能0基础在一个小时内看完 你弄明白wordpress也要有几天甚至几个月呢不是么

    最重要的是

    never stop learning

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 16:40:43

    首先,我还是一个PHP的入门者,我反到觉得Laravel这样的特别适合我个人的思维和想法。至于文档为什么会看不懂,具体原因我并不知道,但是我个人认为一个像Laravel这样的框架,你首先需要弄明白的是MVC这个三个部分,这三个部分的工作流程和担任的角色分清楚了,然后再看看ORM,基本上你的框架入门基础就有了。

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-10 16:40:43

    你的问题在于没怎么深入了解过框架,对于一个多年的phper来说,你落后很多了

    回复
    0
  • PHPz

    PHPz2017-04-10 16:40:43

    用PHP好几年了,不知道为什么很多要使用laravel,类都是深度封装,严重影响其性能,团队中大家的水平也不一样,用laravel写出来的代码,可读性真的是屎一样的,除了抛异常比较友好外,我觉得没有什么特点,laravel之前在公司内部被大力推荐,我们花了一年多的时间将其迁移到yaf,选择PHP框架很简单,只能路由分发,其他扩展使用公司composer管理。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 16:40:43

    @eechen @atekul @justjavac 的答案都挺好的,都说明了框架不是开发一个网站的必要,框架可能只是为了让你更好的组织你的代码而已。我们写的代码可能没有一个优秀的框架那么优雅而已,但当你一旦适应了那么一种套路之后,你即使不用框架也能够写出结构组织优美,易于维护的代码。正如 @justjavac 说的,just do it ,从hello world开始,一步步看他如何做路由,如果做存储,如何做缓存,如何做加密等等。仅仅看文档是不够了,写一段代码,调试跟踪,或许会更加快的把握它的路径。

    回复
    0
  • ringa_lee

    ringa_lee2017-04-10 16:40:43

    https://laravist.com

    来这里看基础吧,大家一起学,我也刚刚学

    回复
    0
  • 取消回复