For the lasagna: Bring 4 quarts of water to a boil in a pot; season the water with salt. Add the lasagna noodles and cook until al dente, about 7 minutes. Drain and lay the noodles flat on a baking sheet. Set aside.
For the zucchini: Heat a grill pan over medium-high heat. Put the zucchini slices in a bowl, drizzle with the oil and sprinkle with salt and pepper. Add the slices to the grill pan and cook on both sides until grill marks appear, about 2 minutes per side. Remove to a plate and set aside.
For the spinach: In a large nonstick skillet over medium heat, melt the butter. Add the spinach and cook until wilted, about 2 minutes. Season with salt and pepper. Remove to a sieve set over a bowl to drain excess liquid; set aside.
For the alfredo: In the same skillet over medium heat, melt the butter. Sprinkle in the flour, whisking to form a roux, and cook over medium-low heat for 2 minutes. Add the garlic and cook until fragrant, about 1 minute. Slowly add the hot milk and cream, whisking until smooth, and cook until thickened, 3 to 4 minutes. Remove from the heat. Season with salt and pepper. Fold in the Parmesan, artichoke hearts and pesto. Set aside.
For the ricotta mix: In a medium bowl, add the ricotta, Parmesan and egg yolk and mix to combine. Season with salt and pepper.
For the layers: Butter a 9-by-13-inch baking dish.
To assemble the lasagna: Spread 1 cup of the alfredo sauce on the bottom of the buttered baking dish. Add a layer of 3 lasagna noodles. Add 1 1/2 cups alfredo sauce and spread evenly. Scatter the spinach evenly on top. Add a layer of 6 mozzarella slices. Add a layer of 3 lasagna noodles. Add 1 1/2 cups alfredo and spread evenly. Add the ricotta mixture and spread evenly. Add a layer of 6 mozzarella slices. Add a layer of 3 lasagna noodles. Add 1 1/2 cups of alfredo and spread evenly. Add a layer of 6 mozzarella slices. Add the zucchini slices. Add the remaining 3 lasagna noodles. Spread the remaining alfredo evenly over the top of the noodles. Top with the remaining 6 slices of mozzarella.
Bake until browned and bubbly, 40 to 45 minutes. Allow the lasagna to sit for 10 to 20 minutes before serving. Top with lots of torn fresh basil.