THẢO LUẬN

Sorry bạn, mình đánh nhầm đầu mục thôi bạn ạ 😦

0

Sorry bạn, mình đánh nhầm đầu mục thôi bạn ạ 😦

0
thg 8 22, 2017 8:46 SA
<Switch> <Route path='/roster/:number' component={Player}> <Route path="profiles" component={PlayerProfile} /> </Route> </Switch> bạn có chắc cái này sẽ chạy trên react-router-v4?.
0
thg 8 22, 2017 6:29 SA

Hihi. Cám ơn bạn. Mình đã sửa lại comment rồi 😃

+1

vâng,e sẽ update lại bài.

0
thg 8 22, 2017 4:26 SA

It's my pleasure ^^

0

góp ý 1 chút là ở phần companion object nếu bạn muốn tạo constant thì nên dùng từ khoá const nhé

companion object {
     const val TAG: String = "HeroFragment"
  }

nếu ko có const thì nếu bạn gọi cái constant đấy bên java thì nó sẽ là Something.Companion.getTAG(), còn khi có thì nó chỉ là Something.TAG thôi.

0
thg 8 22, 2017 4:19 SA

mình viết bài theo hướng tiếp cận từng bước đối với bài toán cho người dọc dễ hình dung các steps còn thực sự code thì có thể viết gọn hơn rất nhiều, hoàn toàn có thể lược bỏ những chỗ ko cần thiết hoặc gộp chung vào một module đều được.

+1
thg 8 22, 2017 4:02 SA

Câu 5: Cú pháp để comment trong css là gì: Theo mình câu này đáp án là A với B. Trong css dùng cả 2 cách này đều comment đc : A. // comment B. /* comment */

Tuy nhiên trong đáp án chỉ có cả 3 câu đều đúng

0
thg 8 22, 2017 3:57 SA

Gộp cái crop và adjust cũng được chứ nhỉ?

def crop(image_file):
    image = Image.open(image_file)
    p = image.convert("P") # image in 8 bit
    w,h = p.size
    letters = []
    left = right = 0
    top = bottom = 0
    x_found = False
    for x in range(w):
        x_in_letter = False
        y_found = False
        y_in_letter = False
        for y in range(h):
            if p.getpixel((x,y))==0: # pixel value of black
                x_in_letter = True
                y_in_letter = True
            else:
                y_in_letter = False
            if not y_found and y_in_letter:
                if y<top or top==0:
                    top = y
                y_found = True
            if y_found and not y_in_letter:
                if y>bottom and y-top>=38:
                    bottom = y
        if not x_found and x_in_letter:
            if x<left or left==0:
                left=x
            x_found = True
        if x_found and not x_in_letter:
            if (right==0 or x>right) and x-left>25:
                right = x
                letters.append((left, top, right, bottom))# get 1 letter
                # clear
                left = right = 0
                top = bottom = 0
                x_found = False
    return letters
0
  1. Độ nghiêm trọng
  2. Phương pháp đánh giá mức độ của Bug trong quản lý Bug còn 3 đâu @nguyenhong ?
0
thg 8 21, 2017 10:25 SA

Nếu SomeThing của bạn là class cần dependency là Mailer $mailer, trong khi bạn lại cần đặt giá trị cho các thuộc tính của $mailer thì bạn nên tự tạo ra và tự set giá trị thôi. Service Container không phải là viên đạn bạc để giúp bạn có thể giải quyết tất cả các vấn đề được. Như ở comment trong bài này https://viblo.asia/p/laravel-beauty-tim-hieu-ve-service-container-3KbvZ1wLGmWB mình đã từng viết, bạn có thể đặt giá trị mặc định để Service Container có thể resolve ra instance được, nhưng với giá trị cho các property là không cố định thì mình phải tự làm thôi. 😄

P/S: Khi viết code bạn nên đặt trong ` `, hoặc code block

```

```

thì sẽ không bị lỗi render như comment của bạn hiện tại. 😃

Ví dụ: $something = $newSomeThing($mailer);

0
thg 8 21, 2017 9:03 SA

Cho mình hỏi 1 chút về đoạn code cuối. Bình thường thì mình sẽ viết như sau:

$mailer = new Mailer();
$mailer->setFrom('email@example.com');
//...set thêm 1 số cái nữa

$something = new SomeThing($mailer);

Nhưng mình đọc ở bài Service Container thì nếu là laravel thì khi resolve cái SomeThing kia nó sẽ tự tạo 1 cái instance của Mailer. Tuy nhiên mình muốn set trước 1 số thuộc tính của mailer như ở trên(không cố định, dữ liệu cần set có thể thay đổi tùy action) thì phải set ở đâu & set lúc nào?

0

-5 cạn lời -_-

0

ǹ̶̼̬̳̹̬̰̭̳̓̿͑̿̏̿̏͌͜͝i̸̢̡̝̫̖̱͔͚͍͗̃̑̑̂̄ͅc̵̘̻͎̟͔̣͗̀̊̏̂͒̽̈͢͢e̦̪̟͚̘̠͚̟͒̓́̊͂̃̕̚͝ͅ p̡͕̻̝͔̐̑̐̿̉̚͞͝͠ò̖͍̙͇̞̤̾͒̃̑̀͋͟s̡̥̤̦̳̻̋͊̄̓̔t̷̡͖̼̺̬̜̳́̅̇́̓͒̄͜!̳͚̠̻͕̻͗̽̾͐̐̾̍̌͠

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 21, 2017 4:05 SA

Nhất định mình sẽ phải thử laravel 5.5 vì nó vừa mới release được 2 ngày

Nhưng củ chuối 1 cái là dự án của mình chỉ yêu cầu chạy php 5.6.x thôi 😄

lên laravel 5.5 thì bắt buộc chơi với php 7.x

Laravel 5.5 Server Requirements

PHP >= 7.0.0
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension
0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 21, 2017 12:48 SA

một lần nữa cảm ơn @thangtd90 đã gợi ý chi tiết

mình cũng nghĩ y như bạn 😃, tại đang tìm hiểu test nền thích hỏi ra ngô ra khoai ý mà

0

Cảm ơn bạn đã góp ý. 😃 Phần tiếp theo mình đã viết được 1 nửa, cũng sắp xuất xưởng rồi. Bạn hãy đón đọc nhé. 😉

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 8 20, 2017 2:59 CH

@gaumin Đúng như bạn nói, MyISAM Storage Engine không hỗ trợ transaction, nên nếu hạn chế dùng được thì tốt, chỉ nên dùng InnoDB thôi 😄 Mình không thấy có lý do gì để dùng DatabaseMigrations cả, bởi nó sẽ chạy migrate và rollback trước và sau mỗi test case và điều này là không cần thiết khi ta chỉ cần chạy một lần. Do đó, về vấn đề migrate, bạn có thể chạy manual bằng cách gõ lệnh artisan thôi.

Còn muốn tự động chạy đúng 1 lần khi test (trước khi test bắt đầu) thì mình nghĩ có thể viết ở trong hàm setUp của class TestCase. Có một vấn đề là hàm setUp được gọi trước và sau mỗi hàm test, nên cần có một chút trick để có thể chỉ gọi migration đúng một lần. Bạn thử cách dưới đây xem sao:

# Dùng biến static để lưu trạng thái đã chạy migrate chưa
public static $isMigrated = false;

public function setUp()
{
    parent::setUp();

    if (self::$isMigrated === false) {
        # Nếu chưa chạy migration thì chạy ở đây, sau đó đặt lại giá trị là đã migrate rồi
        self::$isMigrated = true;
    }
}

Còn về việc check xem test hiện tại đã phải là test cuối cùng chưa để mà rollback thì mình cũng chưa nghĩ ra cách (^^;) Hàm trong hàm tearDown thì biến app được clear hoàn toàn, tức là mỗi lần test lại có một biến app mới được tạo ra, nên cũng không thể dựa vào đó mà dùng callback được :-s

Mà thật ra thì mình cũng thấy không cần thiết phải rollback lại sau mỗi lần chạy test làm gì, nếu khi nào cần thì chắc tự gõ manual thôi nhỉ (^^;) P/S: Như mình đã nói ở trên thì bạn nên có một DB riêng biệt dành cho việc test.

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí